0

假设我有一个包含两个文档的集合......

{"_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 })

请注意,对于 to 的第二个参数find(),您只是请求text显示该字段的值。

于 2012-11-25T12:50:10.437 回答