【发布时间】:2016-06-13 14:44:39
【问题描述】:
从 system.profile 集合中,我有这样的文件:
{
"op" : "command",
"ns" : "..",
"command" : {
"count" : "..",
"query" : {
"$and" : [
...
]
}
},
"responseLength" : 48,
"millis" : 18,
}
有些查询没有命令字段,而是有“查询”字段。我想检查“命令”字段是否存在。如果确实如此,则将其附加到我的 Stringbuilder 对象,如果不附加“查询”。
更新:
我曾尝试按照 Davide by 的建议使用 Projection,但我仍然没有找到检查查询是否存在的方法,如果确实存在,则追加该查询。
DBCollection collection = mongoTemplate.getCollection("system.profile");
DBObject query = new BasicDBObject("command", new BasicDBObject("$exists",true));
BasicDBObject fields = new BasicDBObject("command",1).append("millis", 1).append("ts", 1);
DBCursor cursor = collection.find(query, fields);
while(cursor.hasNext()) {
sb.append(cursor.next());
sb.append(System.getProperty("line.separator"));
}
return sb;
}
【问题讨论】:
标签: java mongodb mongodb-query