1 联集合查询
联集合查询可以实现类似SQL数据库的多表查询。
db.getCollection('devices').aggregate([
{
"$lookup": {
"from": "user_info",
"localField": "owner",
"foreignField": "uid",
"as": "user_info"
}
},
{"$project": {"cnt":{"$size":"$user_info"}, "product_no": 1}},
{
"$match": {"cnt": {"$gte": 1}}
}
])
我们发现如果直接在$project上直接增加,会导致所有字段缺失,这个时候可以用$addFields
db.getCollection('devices').aggregate([
{
"$lookup": {
"from": "user_info",
"localField": "owner",
"foreignField": "uid",
"as": "user_info"
}
},
{"$addFields": {"cnt": {"$size":"$user_info"}}},
{
"$match": {"cnt": {"$gte": 1}}
}
])
网友评论