我有一个 Mongoshell 查询,看起来像
db.RemoteMongoData.aggregate([
{$group: {
"_id":"$IMEI Number",
"Longitude":{"$last":"$Longitude"},
"Latitude":{"$last":"$Latitude"},
"Address":{"$last":"$Address"},
"Timestamp":{"$last":"$Timestamp"},
}},
{$project: {
"IMEI Number":"$_id",
"Longitude":"$Longitude",
"Latitude":"$Latitude",
"Address":"$Address",
"Timestamp":"$Timestamp",
}},
{$sort: {
'date': -1
}}
])
我想知道如何转换这个查询,以便可以使用java执行它。
将 "Longitude":{"$last":"$Longitude"} 转换为等效的 java 对象困扰着我。 请帮忙.. 从网上可用的资源中,我编写了一个查询,其内容如下:
DBObject group = new BasicDBObject("$group", new BasicDBObject("_id", "$IMEI Number")
.append("Longitude", new BasicDBObject("$last","$longitude"))
.append("Latitude", new BasicDBObject("$last","$latitude"))
.append("Address", new BasicDBObject("$last","$address"))
.append("Timestamp", new BasicDBObject("$last","$timestamp")));
DBObject project = new BasicDBObject("$project", new BasicDBObject("IMEI Number","$_id")
.append("Longitude","Longitude")
.append("Latitude","Latitude")
.append("Address","Address")
.append("Timestamp","Timestamp"));
DBObject sort = new BasicDBObject("$sort", new BasicDBObject("date",-1));
AggregationOutput output = dbCollection.aggregate(group,project,sort);
但我仍然面临类似的错误
'exception: FieldPath 'Longitude' doesn't start with $' on server localhost:27017. The full response is { "errmsg" : "exception: FieldPath 'Longitude' doesn't start with $", "code" : 16873, "ok" : 0.0 }
任何人都可以纠正或指出我的查询有什么问题,这将非常有帮助。 请帮忙.. 谢谢
最佳答案
以下代码对我有用,
DBObject group = new BasicDBObject("$group",new BasicDBObject("_id","$IMEI Number")
.append("Longitude", new BasicDBObject("$last","$Longitude"))
.append("Latitude", new BasicDBObject("$last","$Latitude"))
.append("Address", new BasicDBObject("$last","$Address"))
.append("Timestamp", new BasicDBObject("$last","$Timestamp")));
DBObject project = new BasicDBObject("$project", new BasicDBObject("IMEI Number","$_id")
.append ("Longitude",1)
.append ("Latitude",1)
.append ("Address",1)
.append ("Timestamp",1));
DBObject sort = new BasicDBObject("$sort", new BasicDBObject("date",-1));
AggregationOutput output = dbCollection.aggregate(group,project,sort);
关于java - 复杂的 Mongo Shell 命令转换为 Java 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36667799/