sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur uppdaterar jag dokumentfält i mongo db med java-drivrutinen?

Jag undrar om drivrutinen är smart nog att bara uppdatera den minsta delmängden av ändringar eller om den bara blint uppdaterar hela grejen?

Nej, om du använder den "normala" uppdateringsmetoden kommer hela objektet att skickas över tråden. Jag misstänker att databasservern själv kommer att vara smart nog att bara uppdatera de nödvändiga indexen (och inte de som inte ändrades), om möjligt (dvs objektet kunde uppdateras på plats och behövde inte flyttas eftersom det växte för mycket)

Vad du kan göra är att använda funktionerna "atomic update modifier". Java-dokumentationen är lite lätt på dem, men eftersom drivrutinen bara sänder JSON, bör sakerna från de icke-Java-tutorials fungera, till exempel:

shapes.update((DBObject)JSON.parse(    "{ 'foo' : 'bar'}"),  
    (DBObject) JSON.parse(          "{ '$set' : { 'foo': 'bat'}}")   );


  1. brew install mongodb-fel:Fegt vägrar att `sudo brew install' Mac OSX Lion

  2. MongoDB $addToSet

  3. mongodb hur man ändrar standardport

  4. MongoDB - är DBREF nödvändigt?