PyMongo查询-检查值是否存在

时间:2020-04-15 10:26:45

标签: python mongodb pymongo

我正在寻找对数据库执行查询并提取一些要处理的数据的方法。到目前为止,这是我的查询:

pipeline = [{'$match':{"Timestamp":{'$gte':m(), '$lt':current()},

    'Frequency Survey Reference':{'$regex':'Ch2'}}},

    {'$group': {
        '_id': '$Timestamp',
        'Trace' : {'$push': '$TR Trace'}
    }},

    {'$sort': {'_id': -1}},

    {'$limit': 1}
    ]

get_tr = collection.aggregate(pipeline, allowDiskUse=True)

但是,某些记录的TR Trace(空数组)没有任何值,我想执行检查以忽略那些条目并且不将它们包括在管道中。我将如何执行这种检查?

1 个答案:

答案 0 :(得分:1)

使用$exists查询运算符将它们过滤为$ match的一部分:

pipeline = [{'$match':{"Timestamp":{'$gte':m(), '$lt':current()},
    'Frequency Survey Reference':{'$regex':'Ch2'},
    'TR Trace': {'$exists': True, '$ne': ''}}},

    ...