将一个字段与另一个字段进行比较的Mongoengine查询

2024-06-17 15:37:23 发布

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

class News(Document):
    news_id = IntField()
    post_date = DatetimeField()
    last_modified = DatetimeField()

这是文件

修改后的Mongu日期大于最后一个查询

有点像

在新闻.对象(上次修改时间=后日期)#mongoengine query

有什么方法可以进行这种类型的查询吗?在


Tags: 文件对象iddatepostdocument新闻class
1条回答
网友
1楼 · 发布于 2024-06-17 15:37:23

在django中,您可以使用F来完成此操作,但是由于F不能与mongoengine一起使用where方法-

query = "this.{last_modified}>this.{post_date}"

db_fields = {
    'last_modified': News._fields['last_modified'],
    'post_date': News._fields['post_date']
}

results = News.objects.where(query.format(*db_fields))

根据mongoengine文档,“$where”子句被自动替换

^{pr2}$

你可以直接查询mongodb-

query = "this.{last_modified}>this.{post_date}"

db_fields = {
    'last_modified': News._fields['last_modified'],
    'post_date': News._fields['post_date']
}

collection = News._get_collection()

results = list(collection.find({"$where": query.format(*db_fields)}))

在注意:-你不应该在mongo查询中硬编码db_字段名。在

相关问题 更多 >