2 つのドキュメントを含むコレクションがあるとしましょう...
{"_id": ..., "msg": "hello world"}
{"_id": ..., "name": "bob dylan"}
そしてクエリ...
db.collection.find({}, {"text": 1})
これが両方のドキュメントを返すのはなぜですか? msg フィールドが存在する場合にのみ返す方法はありますか?
2 つのドキュメントを含むコレクションがあるとしましょう...
{"_id": ..., "msg": "hello world"}
{"_id": ..., "name": "bob dylan"}
そしてクエリ...
db.collection.find({}, {"text": 1})
これが両方のドキュメントを返すのはなぜですか? msg フィールドが存在する場合にのみ返す方法はありますか?
条件が空であるため、クエリは両方のドキュメントを返します ( {}
):
db.collection.find({}, {"text": 1})
msg
フィールドが存在するドキュメントのみを検索する場合は、次を使用できます$exists
。
db.collection.find({ msg: { $exists: true}}, { "text" : 1 })
の 2 番目のパラメータでは、表示するフィールドfind()
の値のみを要求していることに注意してください。text