use*_*300 10 mongoose mongodb node.js
假设我有一个名为 a 的集合collection_a
,其中包含对名为 的集合 b 的查找collection_b
。如果集合包含一个名为 的字段primary_color
并且查找包含一个名为 的字段available_colors
。我如何比较primary_color
以available_colors
查看列表中primary_color
是否包含当前值available_colors
?
我尝试了以下但它在聚合匹配中不起作用,
{'primary_color': {'$in': '$collection_b.available_colors'}}.
Run Code Online (Sandbox Code Playgroud)
不可能在$match
stage 中引用另一个集合。
您必须使用$lookup
或填充猫鼬。
db.collectiona.aggregate([
{"$lookup":{
"from":collectionb,
"localField":"primary_color",
"foreignField":"available_colors",
"as":"matches"
}},
{"$match":{"matches.0":{"$exists":true}}}
])
Run Code Online (Sandbox Code Playgroud)
https://mongoplayground.net/p/bkQzZcrP0aJ
归档时间: |
|
查看次数: |
159 次 |
最近记录: |