0

2 つのドキュメントを含むコレクションがあるとしましょう...

{"_id": ..., "msg": "hello world"}
{"_id": ..., "name": "bob dylan"}

そしてクエリ...

db.collection.find({}, {"text": 1})

これが両方のドキュメントを返すのはなぜですか? msg フィールドが存在する場合にのみ返す方法はありますか?

4

1 に答える 1

3

条件が空であるため、クエリは両方のドキュメントを返します ( {}):

db.collection.find({}, {"text": 1})

msgフィールドが存在するドキュメントのみを検索する場合は、次を使用できます$exists

db.collection.find({ msg: { $exists: true}}, { "text" : 1 })

の 2 番目のパラメータでは、表示するフィールドfind()の値のみを要求していることに注意してください。text

于 2012-11-25T12:50:10.437 に答える