如何使用mongoengine只查询mongo库的部分字段, 而不是全部字段?

发布于 2022-09-02 15:45:42 字数 185 浏览 27 评论 0

一般使用mongoengine会查询符合条件的所有的文档(即文档里的所有字段都会查询出来),现在只想查出文档里的部分字段, 并且保持查询效率不能降低

问题补充:这里提到的问题是使用django + mongoengine模块来查询mongodb数据库, 不是直接使用类似pymongo这样的模块来查询,如何查出部分字段, 并保持较高效率?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我的影子我的梦 2022-09-09 15:45:42

用find的第二个参数。
数据

{
    "_id" : ObjectId("56ceaff4a442fd22fec343ce"),
    "edit_info" : {
        "edited_on" : ISODate("2010-02-25T07:40:36.017Z"),
        "edited_by" : NumberLong(137),
        "original" : ObjectId("56ceaff4a442fd22fec343ce"),
        "previous" : null
    },
    "type" : "problem",
    "schema_version" : 1
}

查询语句

db.getCollection('modulestore.definitions').find({_id:ObjectId("56ceaff4a442fd22fec343ce")})

查询结果

{
    "_id" : ObjectId("56ceaff4a442fd22fec343ce"),
    "block_type" : "problem"
}

读多写少的情况建索引。

迷路的信 2022-09-09 15:45:42
# comments - skip 5, limit 10
Page.objects.fields(slice__comments=[5, 10])

QuerySet类的fields方法可以只获取 所需字段

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文