繁体   English   中英

如何在 mongo db 中编写查询以查找嵌套数组中没有具有给定 id 的元素的元素?

[英]How to write a query in mongo db to find elements in which the nested array does not have an element with the given id?

有一个带有 data 的给定数组。

[
   {
      "_id":"62d9553f2f7d45d51e9e6850",
      "title":"lol",
      "body":"lol",
      "readIds":[
         {
            "id":"62c56b2cffe059fdfdd19230",
            "createdAt":1658417024700
         }
      ],
      "mode":"custom",
      "createdAt":"2022-07-21T13:31:43.633Z",
      "updatedAt":"2022-07-21T15:23:44.701Z"
   },
   {
      "_id":"62d954e2ea35817546d42702",
      "title":"tesssst",
      "body":"tesssst",
      "readIds":[
      ],
      "mode":"custom",
      "createdAt":"2022-07-21T13:30:10.759Z",
      "updatedAt":"2022-07-21T13:30:10.759Z"
   },
]

我需要编写一个查询来过滤数组并只获取那些 readIds 没有对象的元素,其 id 等于 '62c56b2cffe059fdfdd19230'。 我的尝试是这样的:

  .find({
            readIds: {
              $elemMatch: {
                id: {
                  $not: {
                    $eq: id,
                  },
                },
              },
            },
          })

我不确定我是否正确地回答了您的问题,但以下内容是否有效?

db.getCollection('stuff').find({"readIds.id": {$ne: "62c56b2cffe059fdfdd19230"}})

你可以在这里测试它: Mongo Playground

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM