0

レコード/カウントはeventDetails.eventDelivery.stateCode = "Y-FINISH"である必要があります。配列リスト内のどの要素にあってもかまいません。Javaを使用してMonogDBからネストされた配列を読み取る方法

stateCode = "Y-FINISH"がアレイリストにあるかどうかを確認したいだけです。

Sample Data #1: 
{ 
    "_id" : ObjectId("5a2fb09736cf07f6a1146691"), 
    "activityID" : "", 
    "eventDetails" : [ 
     { 
      "eventDelivery" : { 
      "digital" : { 
       "secureid" : "1231321212" 
      }, 
      "stateCode" : "X-FINISH", 
      "state" : "SUCCESS" 
     }, 
     { 
      "eventDelivery" : { 
      "digital" : { 
       "secureid" : "8762871121" 
      }, 
      "stateCode" : "Y-FINISH", 
      "state" : "SUCCESS"    
     } 
    ], 
} 

Sample Data #2: 
    { 
     "_id" : ObjectId("5a2fb09736cf07f6a1146691"), 
     "activityID" : "", 
     "eventDetails" : [ 
      { 
       "eventDelivery" : { 
       "digital" : { 
        "secureid" : "1231321212" 
       }, 
       "stateCode" : "X-FINISH", 
       "state" : "SUCCESS" 
      }, 
      { 
       "eventDelivery" : { 
       "digital" : { 
        "secureid" : "8762871121" 
       }, 
       "stateCode" : "Y-FINISH", 
       "state" : "SUCCESS"    
      }, 
      { 
       "eventDelivery" : { 
       "digital" : { 
        "secureid" : "7651327152 
       }, 
       "stateCode" : "Z-FINISH", 
       "state" : "SUCCESS"    
      } 
     ], 
    } 

Javaを使用してこれを読む必要があります。 MongoのJavaドライバのバージョン3.xを使用して

答えて

1

...

MongoClient mongoClient = ...; 

MongoCollection<Document> collection = mongoClient.getDatabase("...") 
    .getCollection("..."); 

Bson filter = Filters.eq("eventDetails.stateCode", "Y-FINISH"); 

long count = collection.count(filter); 
関連する問題