mongo聚合查询高阶

每次用pymongo进行聚合查询的时候,有一些命令总会忘记,记录一下
情况1:keywords字段存在三种情况,不存在,存在为空列表,不为空的列表。可以根据下面命令查询不为空的列表。

table_post.find({'keywords':{'$exists':True},'keywords.0':{'$exists' : True }})'

情况2:根据查询条件将所有字段放在同一个list中,若字段也为list,需要两次$unwind.

k = table_post.aggregate([
#查询条件
    {'$match':{'createdAt':{'$gt':s,'$lt':e},'keywords':{'$exists':True}}},
    {"$group": {
       "_id": '$domain',
       "tcount": {"$sum": 1 },
       "keywords": {"$push":"$keywords" }
    }},
    {"$unwind":"$ttags" },
    {"$unwind":"$ttags" },
    {"$group": {
       "_id":"$_id",
        "tcount": {"$first":"$tcount" },
        "tags": {"$addToSet":"$ttags" }
     }}
    # {"$project": {
    #    "count":"$tcount",
    #    "tags":"$ttags"

])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值