MongoDB常用复杂查询

2020-06-17  本文已影响0人  霡霂976447044

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}}
    }
    ])
上一篇下一篇

猜你喜欢

热点阅读