查找数组中是否存在嵌入式文档,并获取父文档的属性值

MHJ

我想查找嵌入文档是否存在于父文档的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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在嵌入式数组中按$ in查找文档

数组中嵌入式文档的collection更新属性

MongoEngine:从嵌入式文档获取父文档

MongoDB嵌入式文档数组:仅获取一个具有特定属性的嵌入式文档

如何在嵌入式文档中查找某个元素

如何使用id mongodb在嵌入式文档数组中查找数据?

如何获取具有嵌入式键值对数组的PyMongo文档的值(实时)

基于嵌入式文档的查找

是否有任何查询通过检查mongoDb中嵌套的嵌入式文档的字段来查找文档

如何使用Mongoose将值推入MongoDB中嵌入式文档中的数组?

基于范围查询MongoDB中嵌入式文档的数组

查询Spring Data MongoDB中嵌入式文档的数组

嵌入式文档数组中的MongoDB Aggregate ObjectId

Mongoose 在嵌入式文档中获取特定项目

是否可以查询嵌入式文档?

汇总嵌入式文档数组

春季查询嵌入式文档的数组

如何在嵌入式数组mongodb中查询嵌入式文档

在文档中引用文档的嵌入式数组的嵌入式数组上查询Doctrine2和MongoDB

mongodb汇总嵌入式文档值

如何将嵌入式文档数组上移到父级并使用聚合管道更改键/值

从嵌入式文档中删除字段

查询MongoDB中的嵌入式文档

在mongodb中展开嵌入式文档

嵌入式文档中的批量更新

在 MongoDB 中搜索嵌入式文档?

在嵌入文档数组中查找引用文档

通过符合条件的嵌入式数组元素数查找文档

如果任何其他数组嵌入式文档中没有相同的字段值,则将新文档添加到数组中