我在MongoDB中有一个JSON,结构如下:
{
id:"_234234",
"stationId":"ALM",
"storageData": {
}
}
要检索storageData
等于null
的JSON,在MongoDB中我查询为:
db.collection.find({"storageData":{"$gt" : {}}})
它为我提供了空storageData
的JSON实体列表。那么我该如何在Java中表示呢
BasicDBObject obj=new BasicDDBObject("storageData", new BasicDBObject("$gt",{}));
collection.find(obj);
我在BasicDBObject("$gt",{}))...
如何在Java中表示("$gt",{})
答案 0 :(得分:0)
首先要了解null是一个有效值。这是有效的:
{
id:"_234234",
StationId:"ALM",
StorageData: null
}
并检索文档,询问null的storagedata将检索id为_234234的doc。
如果您需要检查哪些文件不具有密钥" storagedata"然后使用$ exist关键字或以这种方式构造查询:
db.yourcollection.find("this.storagedata == null")
我会通过查询来完成,而不是在Java中,因为它可以减轻cpu时间和内存。
答案 1 :(得分:0)
您想要的所有内容都代表一个空对象:
BasicDBObject query = new BasicDBObject(
"storageData", new BasicDBObject(
"$gt",new BasicDBObject()
)
);
当然会产生查询:
{ "storageData" : { "$gt" : { } } }
这就是它,只需在没有任何参数的情况下调用BasicDBObject
。