如果 id 等于文档字段数组值,则排除 MongoDB 查询
为此,使用 $not 和 $in。让我们创建一个包含文档的集合 -
[
{
id: "101",
subjectid: [
"102"
]
},
{
id: "102",
subjectid: [
"102"
]
}
]以下是快照。

使用 find() 方法显示集合中的所有文档 -
db.collection.find()

这将生成以下输出 -
[
{
"_id": ObjectId("5a934e000102030405000000"),
"id": "101",
"subjectid": [
"102"
]
},
{
"_id": ObjectId("5a934e000102030405000001"),
"id": "102",
"subjectid": [
"102"
]
}
]以下查询使用 $expr、$not 和 $in 获取不匹配字段数组值的排除值 -
db.collection.find({
$expr: {
$not:{
$in: [
"$id",
"$subjectid"
]
}
}
})这将生成以下输出 -
[
{
"_id": ObjectId("5a934e000102030405000000"),
"id": "101",
"subjectid": [
"102"
]
}
]
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP