如何从查询中排除 id 数组
How to exclude array of ids from query
我有一个 _ids
数组,我想从查询中排除它们:
console.log('relatedCards', relatedCards);
const motherCards = await db.MotherCard.find({ "_id": { $ne : relatedCards } });
但是returns这个错误:
为什么会发生这种情况以及如何解决这个问题?
$ ne
通常用于一个值。但是如果你想排除array
中的多个项目,你可以使用$ nin
例如我有这个模型:
{
"_id": "5a934e000102030405000000",
"key": 1
},
{
"_id": "5a934e000102030405000001",
"key": 2
},
{
"_id": "5a934e000102030405000002",
"key": 3
},
{
"_id": "5a934e000102030405000003",
"key": 4
},
{
"_id": "5a934e000102030405000004",
"key": 5
}
我想排除 key:3
和 key5
:
db.collection.find({
key: {
"$nin": [
3,
5
]
}
})
现在这个查询return一个正确的结果:
[
{
"_id": "5a934e000102030405000000",
"key": 1
},
{
"_id": "5a934e000102030405000001",
"key": 2
},
{
"_id": "5a934e000102030405000003",
"key": 4
}
]
希望此解决方案对您有所帮助。
我有一个 _ids
数组,我想从查询中排除它们:
console.log('relatedCards', relatedCards);
const motherCards = await db.MotherCard.find({ "_id": { $ne : relatedCards } });
但是returns这个错误:
为什么会发生这种情况以及如何解决这个问题?
$ ne
通常用于一个值。但是如果你想排除array
中的多个项目,你可以使用$ nin
例如我有这个模型:
{
"_id": "5a934e000102030405000000",
"key": 1
},
{
"_id": "5a934e000102030405000001",
"key": 2
},
{
"_id": "5a934e000102030405000002",
"key": 3
},
{
"_id": "5a934e000102030405000003",
"key": 4
},
{
"_id": "5a934e000102030405000004",
"key": 5
}
我想排除 key:3
和 key5
:
db.collection.find({
key: {
"$nin": [
3,
5
]
}
})
现在这个查询return一个正确的结果:
[
{
"_id": "5a934e000102030405000000",
"key": 1
},
{
"_id": "5a934e000102030405000001",
"key": 2
},
{
"_id": "5a934e000102030405000003",
"key": 4
}
]
希望此解决方案对您有所帮助。