【发布时间】:2016-10-01 13:59:46
【问题描述】:
我是 Mongo DB 的新手,我使用 java mongo 驱动程序从我的 java 类中获取来自 mongo db 的数据。
我在集合中有以下行。
{
"_id" : "13dded92-a9c0-48f8-9522-7422e2c7c2b6",
"E_MAIL" : "Anonymous_User",
"CITY" : "New York",
"COUNTRY" : "USA",
"OPERATING_SYSTEM" : "WINDOWS_10",
"DATE_TIME" : "27-08-2016 09:47:17",
"TOKEN" : "t76be55otr6galp4prc0f5k7bu"
}
{
"_id" : "13dded92-a9c0-48f8-9522-7422e2c7c2b6",
"E_MAIL" : "Anonymous_User",
"CITY" : "New York",
"COUNTRY" : "USA",
"OPERATING_SYSTEM" : "WINDOWS_10",
"DATE_TIME" : "27-08-2016 09:47:17",
"TOKEN" : "t76be55otr6galp4prc0f5k7bu"
}
{
"_id" : "13dded92-a9c0-48f8-9522-7422e2c7c2b6",
"E_MAIL" : "Anonymous_User",
"CITY" : "New York",
"COUNTRY" : "USA",
"OPERATING_SYSTEM" : "WINDOWS_10",
"DATE_TIME" : "24-08-2016 09:47:17",
"TOKEN" : "t76be55otr6galp4prc0f5k7bu"
}
{
"_id" : "13dded92-a9c0-48f8-9522-7422e2c7c2b6",
"E_MAIL" : "Anonymous_User"
"CITY" : "New York",
"COUNTRY" : "USA",
"OPERATING_SYSTEM" : "WINDOWS_10",
"DATE_TIME" : "22-08-2016 09:47:17",
"TOKEN" : "t76be55otr6galp4prc0f5k7bu"
}
我正在尝试按日期对它们进行分组,因此结果应该为 2 表示通过日期 27-08-2016
为此,我在我的 java 类中尝试了以下代码。
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import javax.mail.MessagingException;
import javax.mail.internet.AddressException;
import org.bson.Document;
import org.bson.conversions.Bson;
import com.mongodb.AggregationOutput;
import com.mongodb.BasicDBObject;
import com.mongodb.BasicDBObjectBuilder;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
public class Same {
public static void main(String[] args) throws AddressException, MessagingException {
try {
MongoClient mongoClient = new MongoClient("localhost", 27017);
DBCollection collection;
DB db = mongoClient.getDB("myDB");
collection = db.getCollection("myCollection");
SimpleDateFormat simpleDateFormat = new SimpleDateFormat ("yyyy.MM.dd");
String date ="2016.08.27";
String date1 ="2016.08.27";
Date startDate = simpleDateFormat.parse(date);
Date endDate = simpleDateFormat.parse(date1);
BasicDBObject query1 = new BasicDBObject("LOGIN", new BasicDBObject("$gte",startDate).append("$lt",endDate ));
collection.find(query1);
System.out.println("count");
System.out.println(collection.find(query1));
mongoClient.close();
} catch (Exception e) {
System.err.println(e.getClass().getName() + ": " + e.getMessage());
}
}
}
我得到如下控制台,
count
DBCursor{collection=DBCollection{database=DB{name='myDB'}, name='myCollection'}, find=FindOptions{, batchSize=0, limit=0, modifiers=null, projection=null, maxTimeMS=0, skip=0, sort=null, cursorType=NonTailable, noCursorTimeout=false, oplogReplay=false, partial=false}}
如何在这里获取计数值,我真正缺少的。
【问题讨论】: