Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
希望mongodb查找操作返回特定字段,但返回不带此字段的文档_Mongodb - Fatal编程技术网

希望mongodb查找操作返回特定字段,但返回不带此字段的文档

希望mongodb查找操作返回特定字段,但返回不带此字段的文档,mongodb,Mongodb,代码如下 db.xxx.find(null,{name:1}) 我希望返回集合中的所有名称,但结果包含没有字段“name”的文档,如下所示 { "_id" : ObjectId("52b6574e55b3a4bd6cf89c62"), "name" : "xxx" } { "_id" : ObjectId("52b657ab55b3a4bd6cf89c63") } 如何删除这些 可以,但我认为这个解决方案很难看。有更好的解决方案吗 @JohnnyHK的评论很有用:“查询参数决定包含哪些文

代码如下

db.xxx.find(null,{name:1})
我希望返回集合中的所有名称,但结果包含没有字段“name”的文档,如下所示

{ "_id" : ObjectId("52b6574e55b3a4bd6cf89c62"), "name" : "xxx" }
{ "_id" : ObjectId("52b657ab55b3a4bd6cf89c63") }
如何删除这些


可以,但我认为这个解决方案很难看。有更好的解决方案吗



@JohnnyHK的评论很有用:“查询参数决定包含哪些文档,投影参数决定每个文档包含哪些内容”

我不确定您认为解决方案的哪些方面不好,但是如果您只想从文档中获得一组不同的
名称
值,您可以使用
distinct

db.xxx.distinct('name')

简单地说:我想要所有名称,如果文档不包含“名称”字段,为什么文档会出现在结果列表中?我可以做一些配置来改变这种行为吗?@zilong这就是MongoDB查询的工作方式。查询参数确定包含哪些单据,投影参数确定每个单据包含哪些内容。
db.xxx.distinct('name')