sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur kan vi ge frågor om inbäddade dokument via java-drivrutinen?

Om jag förstår dig rätt kan du hitta svaret på din fråga nedan.

Säg att du har följande kapslade dokument.

{ "key1" : "value1",
  "key2" : {
             "key21" : "value21",
             "key22" : "value22"
           }
}

Om du vill göra en fråga på de kapslade dokumenten kan du komma åt det inbäddade objektet med hjälp av följande java-kod.

DBCollection coll = db.getCollection("collectionName");
BasicDBObject query = new BasicDBObject();
query.put("key2.key21", new BasicDBObject("$eq", "value21"));
DBCursor cur = coll.find(query);

Om du menar att extrahera inbäddade dokument från dokumentet kan du använda Map/Reduce eller Aggregationsramverk.

Ian Daniel har fortfarande lagt till koden för att infoga kapslade dokument som du bad om. Du kan också besöka detta sida för att se några detaljerade exempel.



  1. Hur kan jag skapa ett automatiskt inkrementfält på meteor?

  2. mongoDB. läs, sök tidsstämpel baserat på oplog

  3. MongoDB/PyMongo:Frågar flera kriterier - oväntade resultat

  4. Prestandajustering i MapReduce för prestandaförbättring