假设我有一个包含两个文件的集合......
{"_id": ..., "msg": "hello world"}
{"_id": ..., "name": "bob dylan"}
和查询...
db.collection.find({}, {"text": 1})
为什么这会返回两个文件?有没有办法只在msg字段存在时返回?
答案 0 :(得分:3)
您的查询会返回两个文档,因为您的条件为空({}
):
db.collection.find({}, {"text": 1})
如果您只想查找存在msg
字段的文档,可以使用$exists
:
db.collection.find({ msg: { $exists: true}}, { "text" : 1 })
请注意,对于find()
的第二个参数,您只需要显示text
字段的值。