【问题标题】:How can I mass query fields with mongoengine?如何使用 mongoengine 批量查询字段?
【发布时间】:2014-07-18 16:00:04
【问题描述】:

总的来说,我对 mongoengine 和 MongoDB 还是很陌生。我正在尝试在 Flask 中构建一个高级搜索页面,需要填写许多字段。

当按下搜索按钮时,Flask 会调用一个函数来获取 url 的所有参数,本质上是创建一个参数的 Python 字典。

有没有一种方法可以使用该字典通过 mongoengine(或任何其他库)动态查询 MongoDB 字段?是按原样,还是将其放入其他数据结构中?

因此,例如,如果填写了 namesetcolor 字段,我想要的等效 SQL 语句将是:

SELECT *
FROM myTable
WHERE `name` = 'nameval' AND `set` = 'setval' AND `color` = 'colorval';

如果 mongoengine 不能做到这一点,有没有可以做到的?

此外,我会对此进行硬编码,但要查询大约 25 个字段,这意味着会有很多重复。

【问题讨论】:

  • 尝试在原始pymongo中进行,它应该比mongoengine更容易和更快。
  • 你读过MongoEngine的querying documention吗?

标签: python mongodb flask mongoengine


【解决方案1】:

是的,只要将字典作为 kwargs 传递,您就可以传递要过滤的字典,例如:

MyModel.objects(**myQueryDictionary)

【讨论】:

  • 看来应该可以了。如果我想成为name LIKE '%cool%' 怎么办?我想让所有字段都与LIKE 参数进行比较。
  • 好吧 objectsfilter 拿一本字典 - 什么形状取决于你想要什么查询 - 查看文档 -> docs.mongoengine.org/guide/querying.html
  • 好的。感谢你的回答。我昨天看了看,但已经快结束了,我已经筋疲力尽了。我再试一次。
猜你喜欢
  • 2015-07-19
  • 2014-02-03
  • 1970-01-01
  • 2013-01-14
  • 1970-01-01
  • 2019-05-05
  • 2018-06-10
  • 2013-01-11
  • 2018-05-11
相关资源
最近更新 更多