gpt4 book ai didi

database - 查找其中一个字段的值不为空且不存在于不同字段中的 MongoDB 文档

转载 作者:搜寻专家 更新时间:2023-10-30 22:23:34 25 4
gpt4 key购买 nike

我正在尝试选择一个文档,该文档的字段值不存在并且对于同一集合中的不同字段不为空。这是我收藏中文档的简化表示。

"item" : {
id: "abc",
previousid: null
},
"item" : {
id: "def",
previousid: "abc"
},
"item" : {
id: "pqr",
previousid: "def"
},
"item" : {
id: "xyz",
previousid: "pqr"
}

我需要找到具有用作previousid并且其previousid为null的id的记录。在上述情况下,我希望返回最后一条记录(版本“xyz”),因为“xyz”尚未用作 previousid。给我带来麻烦的是 self 参照的东西。

在伪代码中,它将是:

select item where id does not exist as previousid and previousid is not null

我是 MongoDB 的新手(但不是数据库)。我仔细研究了文档数小时并尝试了多种方法,例如 $ne$nin$and$expr ,但我显然遗漏了一些东西。

最佳答案

您可以使用 $graphLookup检查指定集合中是否存在该字段,并为 priviousId

过滤文档不存在的文档
db.collection.aggregate([
{ "$graphLookup": {
"from": "collection",
"startWith": "$id",
"connectFromField": "id",
"connectToField": "previousid",
"as": "data"
}},
{ "$match": { "data": [] }}
])

MongoPlayground

关于database - 查找其中一个字段的值不为空且不存在于不同字段中的 MongoDB 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57767512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com