[英]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.