假设我有一个包含两个文档的集合......
{"_id": ..., "msg": "hello world"}
{"_id": ..., "name": "bob dylan"}
和一个查询...
db.collection.find({}, {"text": 1})
为什么这会返回两个文件?有没有办法只在 msg 字段存在时才返回?
假设我有一个包含两个文档的集合......
{"_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 })
请注意,对于 to 的第二个参数find()
,您只是请求text
显示该字段的值。