我正在寻找对数据库执行查询并提取一些要处理的数据的方法。到目前为止,这是我的查询:
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(空数组)没有任何值,我想执行检查以忽略那些条目并且不将它们包括在管道中。我将如何执行这种检查?
答案 0 :(得分:1)
使用$exists
查询运算符将它们过滤为$ match的一部分:
pipeline = [{'$match':{"Timestamp":{'$gte':m(), '$lt':current()},
'Frequency Survey Reference':{'$regex':'Ch2'},
'TR Trace': {'$exists': True, '$ne': ''}}},
...