如何使用python查询mongodb中的不同结果?
我有一个包含多个文档的mongo集合,假设如下(假设Tom因为某种原因在2012年有两位历史教师) { "name" : "Tom" "year" : 2012 "class" : "History" "Teacher" : "Forester" } { "name" : "Tom" "year" : 2011 "class" : "Math" "Teacher" : "Sumpra" } { "name" : "Tom","year" : 2012,"class" : "History","Teacher" : "Reiser" } 我希望能够查询“Tom”曾经拥有的所有不同的类,即使Tom有多个“历史”类和多个教师,我只是希望查询获得Tom所在的最小数量的文档所有这些,并且“历史”显示一次,而不是具有包含重复“历史”的多个文档的查询结果. 我看了看: 并希望能够尝试类似的东西: student_users = Students.objects(name = "Tom",class = "some way to say distinct?") 虽然它似乎没有记录.如果这不是语法上正确的方法,这可能在mongoengine中,或者有一些方法可以用像pymongo这样的其他库来实现吗?或者我是否必须使用Tom查询所有文档然后进行一些后处理才能获得唯一值?无论如何,语法都会受到赞赏. 解决方法首先,它只能在某些字段(只有一个字段)上获得不同的值,如 Distinct上的MongoDB文档中所述.Mongoengine的QuerySet类确实支持distinct()方法来完成这项工作. 所以你可以尝试这样的结果来获得结果: Students.objects(name="Tom").distinct(field="class") 此查询将生成一个包含Tom参加的类列表的BSON文档.
(编辑:十堰站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- python – Tkinter Canvas将项目移动到顶层
- Python解析IP地址和协议的日志文件
- python – 如何清理与send_file一起使用的临时文
- python – 带smtp.gmail的Django电子邮件SMTPAut
- 在Django模板中使用前导下划线访问dict元素
- python – Pandas Dataframe查找所有列等于的行
- 如何在django python中用json替换simplejson?
- python – Google App Engine中模型的默认值
- python – 为什么pow(x,y)的时间复杂度为O(1),而
- python – 将numpy.array中的每个元素与numpy.ar