我想查找嵌入文档是否存在于父文档的array属性中,并获取父文档的属性值。想一想,我有一个这样的文件
{
_id:1,
persons:[{name: "Jack", earning: 1000},{name: "Monica", earning: 2000}]
totalDebt:500
}
我想找到是否name=Jamal
存在于人阵的嵌入文档,并与此totalDebt
的_id=1
结果将是这样的:
{
totalDebt:500,
exists:false // as Jamal does not exists
}
如何在单个查询中执行此操作?
是的,您可以使用一个查询轻松解决此问题。我使用$cond
,通过一个查询解决了这个问题,请看下面的代码以获得简要的了解。
db.getCollection('collectionName').aggregate([
{
$project: {
_id: 0,
totalDebt: 1,
"exists": {
$cond: {
if: {
$in: [
"Jack",
"$persons.name"
]
},
then: true,
else: false
}
}
}
}
])
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句