[英]How to represent the following query(mongodb) in java
我在MongoDB中具有以下结构的JSON:
{
id:"_234234",
"stationId":"ALM",
"storageData": {
}
}
要在MongoDB中检索storageData
等于null
JSON, storageData
查询为:
db.collection.find({"storageData":{"$gt" : {}}})
它为我提供了带有空storageData
的JSON主体列表。 那我怎么用Java表示
BasicDBObject obj=new BasicDDBObject("storageData", new BasicDBObject("$gt",{}));
collection.find(obj);
我在BasicDBObject("$gt",{}))...
附近BasicDBObject("$gt",{}))...
错误BasicDBObject("$gt",{}))...
如何用Java表示("$gt",{})
?
首先了解null是有效值。 这将是有效的:
{
id:"_234234",
StationId:"ALM",
StorageData: null
}
并检索文档,要求存储数据为空将检索ID为_234234的文档。
如果您需要检查哪些文档没有关键字“ storagedata”,请使用$ exist关键字或以这种方式构造查询:
db.yourcollection.find("this.storagedata == null")
我会通过查询而不是在Java中完成此操作,因为这会减少CPU时间和内存。
您只想代表一个空对象:
BasicDBObject query = new BasicDBObject(
"storageData", new BasicDBObject(
"$gt",new BasicDBObject()
)
);
当然哪个产生查询:
{ "storageData" : { "$gt" : { } } }
就是这样,只需不带任何参数的方式调用BasicDBObject
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.