gpt4 book ai didi

java - MongoDB java驱动程序获取记录,其中日期和用户之间

转载 作者:行者123 更新时间:2023-12-01 18:23:17 24 4
gpt4 key购买 nike

从名为“persons”的集合中,我想检索日期介于之间的所有记录

"14-11-2014" and "20-11-2014"  <-- These are both in string format (dd-mm-yyyy)

并且

user: "Erik"

我的mongoDB

{
"_id" : "546c9f26dbeaa7186ab042c4", <------this one should NOT be retreived
"Task: "Sometask" because of the user
"date" : "20-11-2014",
"user" : "Dean"
},
{
"_id" : "546caef6dbeaa7186ab042c5", <--------- This one should be retreived
"task": "A task",
"date" : "20-11-2014",
"user" : "Erik"
}
{
"_id" : "546caef6dbeaa7186ab042c5", <----- This one should NOT be retreived
"task": "A task", because of the date
"date" : "13-11-2014",
"user" : "Erik"
}

我正在使用 java mongo java 驱动程序 2.11.3

也许有一些使用 BasicDBObject 的解决方案?

我很好奇..谢谢

编辑

我正在使用:

public static String findTimelines(String begin, String end, String username) throws UnknownHostException, JSONException{
DBCollection dbCollection = checkConnection("timelines");
BasicDBObject query = new BasicDBObject();
query.put("date", BasicDBObjectBuilder.start("$gte", begin).add("$lte",end).get());
query.put("user", username);
dbCollection.find(query).sort(new BasicDBObject("date", -1));
DBCursor cursor = dbCollection.find(query);
return JSON.serialize(cursor);
}

在您查询“28-11-2014”到“01-12-2014”之类的内容之前一直有效,即使有一个日期为“30-11-2014”的对象,它也不会返回任何内容。我认为这是因为月份的变化。
此外当您这样做时,该对象也会被检索:“28-11-2014”到“30-11-2014”,因为月份保持不变

请帮忙!

最佳答案

尝试这样的事情

BasicDBObject query = new BasicDBObject();
query.put("date", BasicDBObjectBuilder.start("$gte", fromDate).add("$lte", toDate).get());
collection.find(query).sort(new BasicDBObject("date", -1));

关于java - MongoDB java驱动程序获取记录,其中日期和用户之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27042245/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com