MongoDB:只获取文档上数组字段的单个成员

MongoDB:只获取文档上数组字段的单个成员,mongodb,Mongodb,假设我有一个Foo文档,如下所示: { _id:1, 吧台:[{u-id:1,…吧台道具},{u-id:2,…吧台道具},{u-id:3,…吧台道具)}], …其他富道具 } 如何查询数据库中的单个条,使结果如下所示: {u id:2,…酒吧道具} 比如: db().collection('foo').findOne({u-id:1,{foo:id:2},{foo:1,{u-id:0})匹配和投影在MongoDB中是独立的操作,在思考(和询问)查询时也应该将它们分开 不能“查询单个条形图”。

假设我有一个
Foo
文档,如下所示:

{
_id:1,
吧台:[{u-id:1,…吧台道具},{u-id:2,…吧台道具},{u-id:3,…吧台道具)}],
…其他富道具
}
如何查询数据库中的单个
,使结果如下所示:

{u id:2,…酒吧道具}
比如:


db().collection('foo').findOne({u-id:1,{foo:id:2},{foo:1,{u-id:0})

匹配和投影在MongoDB中是独立的操作,在思考(和询问)查询时也应该将它们分开

不能“查询单个条形图”。查询始终与文档匹配。您可以找到一个包含与条件匹配的条形图的文档,或者您可以找到一个仅包含一个也与条件匹配的条形图的文档,等等。在所有这些情况下,您仍然会得到顶级文档

要检索(仅)符合查询条件的文档中的一个、多个或所有条形图,而不是这些文档,请使用projection(第二个参数
find
或$project aggregation pipeline stage)


使用聚合管道时,可以混合使用$match和$project阶段,例如,您可以使用$match筛选文档,然后使用$project将文档缩减为其某些字段,然后使用$match进一步筛选生成的文档,依此类推。仍然匹配和投影是独立的操作。

在MongoDB中,匹配和投影是独立的操作,在思考(和询问)查询时,也应该将它们分开

不能“查询单个条形图”。查询始终与文档匹配。您可以找到一个包含与条件匹配的条形图的文档,或者您可以找到一个仅包含一个也与条件匹配的条形图的文档,等等。在所有这些情况下,您仍然会得到顶级文档

要检索(仅)符合查询条件的文档中的一个、多个或所有条形图,而不是这些文档,请使用projection(第二个参数
find
或$project aggregation pipeline stage)


使用聚合管道时,可以混合使用$match和$project阶段,例如,您可以使用$match筛选文档,然后使用$project将文档缩减为其某些字段,然后使用$match进一步筛选生成的文档,依此类推。仍然匹配和投影是独立的操作。

这是否回答了您的问题?否,链接问题中的示例显示结果是一个Foo数组,我想检索一个Foo。所有可能的答案都包含在该问题中,因为
find()
可能的解决方案是this,而
aggregate()
最佳解决方案是this,这是否回答了您的问题?否,链接问题中的示例显示结果是一个Foo数组,我想检索一个Foo。所有可能的答案都包含在该问题中,因为
find()
可能的解决方案是这个,而
aggregate()
最佳解决方案是这个