java – 在mongodb中按日期对值排序

我是mongodb的新手,我正在尝试按日期对所有行进行排序.我有混合来源的记录,我试图分开排序.某些记录在写入db时我没有更新dateCreated.后来我发现并将dateCreated添加到db中的所有记录中.假设我总共有4000条记录,前10...

我是mongodb的新手,我正在尝试按日期对所有行进行排序.我有混合来源的记录,我试图分开排序.某些记录在写入db时我没有更新dateCreated.后来我发现并将dateCreated添加到db中的所有记录中.假设我总共有4000条记录,前1000条我没有dateCreated.最新的3000有该专栏.在这里,我试图使用dateCreated列获取最后更新的记录.这是我的代码.

db.person.find({"source":"Naukri"}&{dateCreated:{$exists:true}}).sort({dateCreated: 1}).limit(10)

这段代码重新给我一些结果(来自那1000条记录)我根本看不到dateCreated列.此外,如果我在这里更改(-1){dateCreated:-1}我从其他来源获得结果,但不是Naukri.

所以我需要帮助这个案例,

>我如何按dateCreated排序以获取最新的更新记录和来源.
>我正在使用Java API从Mongo获取记录.如果有人帮助我找到如何使用java同样的查询,我将不胜感激.

希望我的问题很明确.提前致谢.

解决方法:

从文档中你将(并且你将会,不会 – 点头是)读取,你会发现你正在使用的find命令的第一个参数是所谓的查询文档.在本文档中,您指定了一个字段和条件列表,“逗号”分隔,这相当于声明性语法(如SQL)中的条件和条件.

您的查询的问题是它无效,并且没有匹配任何内容.正确的语法如下:

db.person.find({"source":"Naukri", dateCreated:{$exists:true}})
    .sort({dateCreated: -1})
    .limit(10)

所以现在这将过滤为“source”提供的值以及“dateCreated”字段存在的位置,这意味着它存在且包含某些内容.

我建议查看下面的链接,这两个链接中的第一个涉及构造mongoDB查询以及find方法及其参数.所有功能都转换为每种语言实现.

至于Java API以及如何使用,根据您的使用情况,有不同的方法. API提供了一个BasicDBObject类,它或多或少等同于JSON文档表示法,并且是一种hashmap概念.对于shell方法的更多内容和帮助器更像一些动态语言方法,有一个QueryBuilder类,后两个链接给出了示例和信息.这些允许链接使您的查询更具可读性.

Stack Overflow上有很多例子.我建议你看看.

http://docs.mongodb.org/manual/tutorial/query-documents/

http://docs.mongodb.org/manual/reference/method/db.collection.find/

How to do this MongoDB query using java?

http://api.mongodb.org/java/2.2/com/mongodb/QueryBuilder.html

本文标题为:java – 在mongodb中按日期对值排序

基础教程推荐