我试图通过它自己的字段过滤 mongodb 文档,特别是时间,即:
{time1: timeval1, time2: timeval2}
我希望能够得到一个结果集(比如 .find()),其中 timeval1 大于 timeval2。
我不知道如何使用 $gt 执行此操作,也找不到任何类似的东西。关于如何执行此操作的任何想法?
我正在从 djangi 项目中的 pymongo 访问它...但我想要的只是 mongodb 查询。
最佳答案
您可以使用 $where
运算符和一个 javascript 表达式来编写您的查询逻辑。
> db.newColl.find()
{ "_id" : ObjectId("4fbdcdd6e79d66d9e681b185"), "time1" : 123, "time2" : 22 }
{ "_id" : ObjectId("4fbdcddee79d66d9e681b186"), "time1" : 11, "time2" : 220 }
{ "_id" : ObjectId("4fbdcde6e79d66d9e681b187"), "time1" : 331, "time2" : 2120 }
{ "_id" : ObjectId("4fbdcdece79d66d9e681b188"), "time1" : 1, "time2" : 20 }
> db.newColl.find({'$where' : 'this.time1 > this.time2' });
{ "_id" : ObjectId("4fbdcdd6e79d66d9e681b185"), "time1" : 123, "time2" : 22 }
> db.newColl.find({'$where' : 'this.time1 < this.time2' });
{ "_id" : ObjectId("4fbdcddee79d66d9e681b186"), "time1" : 11, "time2" : 220 }
{ "_id" : ObjectId("4fbdcde6e79d66d9e681b187"), "time1" : 331, "time2" : 2120 }
{ "_id" : ObjectId("4fbdcdece79d66d9e681b188"), "time1" : 1, "time2" : 20 }
关于python - 使用自己的字段在 MongoDB 中进行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10731572/