如何编写一个过滤器,该过滤器返回范围,小于某个值以及大于其他值的数据。
答案 0 :(得分:1)
这是一个直接在mongo shell中运行的解决方案。这不是特定于python的。
db.documents.find({ $and: [
{ timestamp: { $gte : 111 } },
{ timestamp: { $lte : 222 } }
] })
您应该考虑在要查询范围的字段上添加索引。
答案 1 :(得分:1)
您可以使用众多查询运算符(reference)之一为单个字段指定多个条件,如下所示。在此示例中,我已指定num
字段必须大于或等于($gte
)low
值且小于或等于($lte
) high
值。
low = 100
high = 1000
for doc in exampleCollection.find({ "num": { "$gte": low, "$lte": high }})
print doc
exampleCollection中的文档如下所示:
{
"_id" : ObjectId("52a248af1d02442354276cfe"),
"num" : 500
}
如果您没有为num
字段创建索引,则需要进行完整的集合扫描以查找匹配的文档(因此,您可以使用create_index
({{3} }))。
exampleCollection.create_index("num")