MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Greifen Sie auf das Element im Mongo-Array in Java zu

Um dies mit dem Java-Treiber zu tun, können Sie Folgendes tun:

DBObject queryForElem = new BasicDBObject("array", new BasicDBObject("$elemMatch", new BasicDBObject("id", "3456")));
DBObject updateMatchingElem = new BasicDBObject("$set", new BasicDBObject("array.$.Y", "1"));
coll.update(queryForElem, updateMatchingElem);

Da dies etwas unhandlich ist, können Sie stattdessen den QueryBuilder verwenden, der Ihnen etwas mehr Lesbarkeit bietet:

DBObject queryForElem = QueryBuilder.start("array").elemMatch(new BasicDBObject("id", "3456")).get();
DBObject updateMatchingElem = new BasicDBObject("$set", new BasicDBObject("array.$.Y", "1"));
coll.update(queryForElem, updateMatchingElem);