我有 MongoDB 数据库,我试图返回那些在另一个集合/数组中没有多个字段的文档。我想要过滤的示例数据:
[
{
id: "1",
version: "1",
data: "test"
},
{
id: "2",
version: "3",
data: "test"
},
{
id: "3",
version: "2",
data: "test"
}
]
我需要将那些不出现在这样的数组中:
[
{
id: "2",
version: "2",
},
{
id: "3",
version: "2",
}
]
对于这个例子,它应该返回文档:
用例是返回当前版本中未显示的文档。我尝试使用 $nin 但它只支持一组值来过滤单个字段。如果我在 $and 运算符中使用它,它会独立比较它。我还设置了一个简单的游乐场: MongoDB playground
答案 0 :(得分:2)
您可以使用 $nor 运算符,对一个或多个查询表达式的数组执行逻辑 NOR 运算,并选择数组中所有查询表达式失败的文档。
db.collection.find({
$nor: [
{
id: "2",
version: "2"
},
{
id: "3",
version: "2"
}
]
})