簡體   English   中英

Arraylist中的Mongo DB查詢

[英]Mongo DB Query in Arraylist

在我的Java Play框架應用程序中,我想將ArrayList值存儲在mongoDB中。

{
    "_id" : ObjectId("5832f29bd4c6721e4e8ba4a7"),
    "_class" : "com.netas.innovation.entity.Idea",
    "title" : "fsaf",
    "desc" : "adgg",
    "keyWords" : "dgds",
    "createdDate" : ISODate("2016-11-21T13:11:55.823Z"),
    "checkbox1" : false,
    "checkbox2" : false,
    "checkbox3" : false,
    "scopeOfIdea" : "Herkes",
    "template" : false,
    "creatorUser" : {
        "$ref" : "user",
        "$id" : ObjectId("5832f27dd4c6721e4e8ba4a5")
    },
    "owners" : [ 
        {
            "$ref" : "user",
            "$id" : ObjectId("5832f27dd4c6721e4e8ba4a5")
        }
    ],
    "answer" : {
        "$ref" : "answer",
        "$id" : ObjectId("5832f29bd4c6721e4e8ba4a6")
    },
    "fileList" : []
}

我想搜索所有者。

我的查詢不起作用

if(owners != null && !owners.isEmpty()) {

           for(int i=0; i<owners.size(); i++) {
              criteriaList.add(new **Criteria().elemMatch(Criteria.where("owners.$id").is(owners.get(i).getId())));**
            }
        }

我該如何解決? 我可以按業主搜索。 所有者可以是兩個人或三個

謝謝答案

"owners" : [ 
    {
        "$ref" : "user(list)",
        "$id" : ObjectId("5832ecdb0deb78cc88392c83")
    }

$ ref:ozgurk,Volkany ...

http://prntscr.com/ddz3c9此示例輸出... title desc vs vsdate和owner

我不是mongodb專家,但是,我想您應該做一些事情:

List<Criteria> criteriaList = new ArrayList<Criteria>();
...
List idList = new ArrayList();
for (int i = 0; i < owners.size(); i++) {
     idList.add(owners.get(i).getId());
}
criteriaList.add(new Criteria().where("owners.$id").in(idList));
...

如果將每個owner = owners.get(i).getId()條件一一添加到列表中,最后將所有條件與AND運算結合起來,將不會得到所需的輸出。

我猜您使用Spring數據。 我試圖編寫以下mongodb查詢:

db.getCollection('idea').find(
    {
           "owners.$id": {
               "$in" : [
                     ObjectId("58451c5f13c97bdde9950641"),
                     ObjectId("28451c5f13c97bdde9950642")
               ]
           }
    }
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM