Mongodb获得文档的特定部分

pow*_*keg 33 mongodb

我正在尝试使用mongo db,我想询问是否可能只获取文档的特定部分?

{
  "name" : "MongoDB",
  "info" : { x : 203, y : 102 }
}
Run Code Online (Sandbox Code Playgroud)

我只想要的内容info.

我发现的最接近 db.collection.find({}, { info: 1 }) 但是这返回了我的信息:内容,我想返回内容.

可能吗?怎么样?

Luc*_*lis 29

你可以做到

db.collection.find({},{'info.x':1, 'info.y':1})
Run Code Online (Sandbox Code Playgroud)

但这意味着在投影中列出信息对象的每个项目 - 这可能是也可能不是您正在寻找的内容.


Ale*_*nov 13

您可以使用distinct()以下类似的功能:

db.collection.distinct("info", {info : {$exists : true}})
Run Code Online (Sandbox Code Playgroud)

  • 你知道为什么这是0吗?这听起来像是完全正确的答案,而前2意味着海报想做的事情是不可能的. (2认同)

Sco*_*dez 11

不,你不能只返回x/y的值; 即使您限制了字段,外部结构仍然会返回.

有关详细信息,请参阅结果预测.