MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Elemento de acesso no array mongo em java


Para fazer isso usando o driver Java, você pode fazer o seguinte:
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);

Dado que isso é um pouco complicado, você pode usar o QueryBuilder, o que oferece um pouco mais de legibilidade:
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);