sql >> Database >  >> NoSQL >> MongoDB

MongoDB Java Driver Update Subdocument

Als dit de update is die is ingesteld in mongodb:

 {$set: 
        { "numberOfDownloads" : "453", 
          "documents" : 
                { "downloads" : "453"}
        }
 }

U kunt de klasse Document op deze manier gebruiken:

Document upDocValue = new Document("numberOfDownloads": "453")
                      .append("documents.downloads":"453");

Dit geeft je:

{
  "numberOfDownloads": "453",
  "documents" : 
    { "downloads" : "453"}
}

Vervolgens kunt u het buitenste document maken met:

Document upDocSet = new Document("$set",updDocValue);

Dit zou je moeten geven:

{$set: 
      { "numberOfDownloads" : "453", 
            "documents" : 
                  { "downloads" : "453"}
      }
}

Vervolgens voert u uw zoekopdracht hier uit:

collection.updateOne(upDocQuery,upDocSet);

Dus je hebt uiteindelijk:

Document updDocQuery = new Document("_id", "9999996978c9df5b02999999");

Document upDocValue = new Document("numberOfDownloads": "453")
                          .append("documents.downloads":"453");

Document upDocSet = new Document("$set",updDocValue);

collection.updateOne(upDocQuery,upDocSet);



  1. Vraag naar een lijst in een andere lijst in mongodb

  2. SignalR schalen met Azure Worker Role en OWIN

  3. mongoDB aggregatie opzoeken op geneste array van objecten

  4. Mongoose - Aggregatie $ match op basis van opsommingswaarden