mongodb lookup 条件过滤
时间: 2023-07-09 09:51:01 浏览: 156
过滤搜索条件
在 MongoDB 的 $lookup 操作中,可以通过 $match 操作符来指定条件过滤。具体实现方式如下:
假设我们有两个集合 orders 和 products,orders 集合中的每个文档都包含一个字段 product_id,该字段指向 products 集合中的对应文档的 _id 字段。现在我们想要将 orders 集合和 products 集合关联起来,并且只返回满足特定条件的 orders 文档,具体操作步骤如下:
```
db.orders.aggregate([
{
$lookup: {
from: "products",
localField: "product_id",
foreignField: "_id",
as: "product"
}
},
{
$unwind: "$product"
},
{
$match: {
"product.category": "books"
}
}
])
```
这个操作会将 orders 集合和 products 集合进行关联,然后通过 $unwind 操作符展开匹配的 products 文档数组,最后通过 $match 操作符对满足条件的 orders 文档进行过滤,只返回其中 product.category 等于 "books" 的文档。需要注意的是,$match 操作符的位置必须在 $lookup 和 $unwind 操作符之后。
阅读全文