用自己的字段在MongoDB中过滤

2024-06-16 11:33:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过mongodb文档自己的字段,特别是时间,即:

{time1: timeval1, time2: timeval2}

我希望能够得到一个结果集(比如with.find()),其中timeval1大于timeval2。在

我不知道怎么用$gt来做这个,也找不到类似的东西。有什么办法吗?在

我在一个djangi项目里从pymongo访问它。。。但我只想要mongodb查询。在


Tags: 项目文档gtmongodbwith时间findpymongo
1条回答
网友
1楼 · 发布于 2024-06-16 11:33:51

您可以使用$where运算符和javascript表达式来编写查询逻辑。在

http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-JavascriptExpressionsand%7B%7B%24where%7D%7D

> 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 }

相关问题 更多 >