我想创建一个查询,用它可以检查文档是否有相关文档,例如我有一个文档
{
name:"test1",
status:"CREATED"
date:"2018-12-12"
user:"foo"
}
我想检索用户没有 status:"OPEN"
的文档的所有文档
我有想法投影一个字段,其中包含为用户和日期打开的文档数量并过滤 0,但我不知道如何做到这一点。
所以当我有以下文件时:
它应该只返回 foo2 和 foo4,因为 foo、foo3 和 foo5 已经具有 status:"OPEN"
的文档
最佳答案
请查找以下代码以获取不存在“OPEN”状态的用户的所有文档:
db.collection.find({
user: {
$nin: db.collection.find({status: 'OPEN'}).map((row) => row.user)
}
});
- $nin:指定和排除列表。
- .map((row) => row.user):将过滤后的文档数组转换为仅包含用户 ID 的字符串数组。
关于javascript - mongodb 查询检查是否存在具有匹配值的其他文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53737904/