2016-10-27 18 views
1

私は数ヶ月間mongoを使っていましたが、今は苦労しています。私は、アレイ上でJavaでcollection.find()をやろうとしている、今mongo配列によるJavaの検索

"_id" : ObjectId("5732d96fed40761e640a3f3e"), 
"_familyId" : "12345", 
"_applications" : [ 
{ 
    "_applicationRID" : "123456", 
    "_applicationDate" : "01012000", 
    "_isRepresentative" : false, 
    "_applicationId" : { 
      "CC" : "AB", 
      "SN" : "123456789", 
      "KC" : "A" 
    }, 
    "_publications" : [ 
    { 
     "_publicationRID" : "123456789", 
     "_publicationDate" : "01012000", 
     "_flaId" : "AB123456789A", 
     "_publicationId" : { 
       "CC" : "AB", 
       "SN" : "1234567", 
       "KC" : "B" 
     }, 

[...] 

:ここ

は私のデータベースの文書の一例です。 私は _publicationIdに含まれているすべてのフィールドを知っています。インデックスが含まれているため、そのフィールドは含まれていないため、 _publicationIdで検索する必要があります。

シェルでは、次のようになります。

db.collection.find({ 
    "_applications._publications._publicationId": { 
     "CC": "AB", 
     "SN": "1234567", 
     "KC": "B" 
    } 
}) 

、これは正常に動作します。 Javaを使用して

、私は適切な構文を見つけることができません。

collection.find("_applications._publications._publicationId", ???) 

答えて

0

あなたが実際にJavaでクエリの、完全に同等である次のタイプのクエリを試してみてください:

DBObject query = new BasicDBObject(
    "_applications._publications._publicationId", 
    new BasicDBObject("CC", "AB").append("SN", "1234567").append("KC", "B") 
); 
DBCursor cursor = collection.find(query); 
+1

ありがとうございました!それは完全に動作します! –