繁体   English   中英

如何在Java中表示以下查询(MongoDB)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM