在MongoDB中,$nin
是一个查询操作符,用于过滤掉数组中包含指定元素的文档
假设我们有一个名为 users
的集合,其中每个文档都有一个名为 hobbies
的数组字段。现在,我们想要找出那些没有 hobbies
数组中包含 "apple" 或 "orange" 的用户。
我们可以使用 $nin
操作符结合 $project
聚合管道来实现这个需求:
db.users.aggregate([
{
$project: {
_id: 1,
name: 1,
hobbies: {
$filter: {
input: "$hobbies",
as: "hobby",
cond: { $nin: ["$$hobby", "apple", "orange"] }
}
}
}
}
])
在这个示例中,我们使用 $filter
表达式来遍历 hobbies
数组,并使用 $nin
操作符过滤掉包含 "apple" 和 "orange" 的元素。最后,我们只返回那些没有这些元素的文档。
注意:$nin
不能直接在 $project
阶段中使用,我们需要使用 $filter
表达式来实现这个需求。
领取专属 10元无门槛券
手把手带您无忧上云