2014-11-11 2 views
0

При использовании MongoTemplate - collection.findAndModify Он удалит все поля документа и оставит только обновленные столбцы/с.
Почему?
Как частично обновлять поля в документе?частично обновить поля в документе - findAndModify удалить все остальные поля?

 DBCollection collection = mongoTemplate.getCollection("company");   
     DBObject query= new BasicDBObject("companyId","1");   
     DBObject update= new BasicDBObject("phoneNumber","404-525-3928");   
     DBObject result = collection.findAndModify(query, update); 


На данный момент - все поля, удаленных от компании 1 ...
Обходной будет идти к БД, принеси компании 1 документ обновить поле/с и сохранить его ...,
Но что, если мне нужно обновить 10 тыс. Из них?

ответ

1

Вам нужен оператор $set в документе для обновления. Вы можете использовать тот и другой update operators здесь иначе, что вы укажете заменит любой документ в настоящее время включает в себя:

 DBCollection collection = mongoTemplate.getCollection("company");   
     DBObject query= new BasicDBObject("companyId","1");   
     DBObject update= new BasicDBObject(
      "$set", new BasicDBObject("phoneNumber","404-525-3928") 
     );   
     DBObject result = collection.findAndModify(query, update); 
+0

работает большое спасибо! Я использовал collection.update (запрос, новый BasicDBObject ( «$ set», новый BasicDBObject («номер телефона», «404-525-3928»)) – user648026

Смежные вопросы