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