Tek bir MongoDB belgesinde birden çok alanı güncelleştirmeyi deniyorum, ancak yalnızca bir alan güncelleştirildi. Kullanıcıların benzersiz bir şekilde customer_user_id tarafından tanımlandığı bir koleksiyon kullanıcı kullanıcım var. Belirli bir kullanıcının birth_year ve ülke alanlarını güncellemek istiyorum. Java + MongoDB: Bir belgedeki birden çok alanı güncelleştirme
Bu
yapıyorum budur: Maalesef// Define the search query:
DBCollection col = md.getDb().getCollection("user");
BasicDBObject searchQuery = new BasicDBObject("customer_user_id", customer_user_id);
// Define the update query:
BasicDBObject updateQuery = new BasicDBObject();
updateQuery.append("$set", new BasicDBObject().append("birth_year", birth_year);
updateQuery.append("$set", new BasicDBObject().append("country", country);
log.info("Update query: " + updateQuery);
col.update(searchQuery, updateQuery);
, sadece ülke alan güncellenir ve kaydedilir updateQuery şuna benzer:
Güncelleme sorgusu: { "$ seti ": {" ülke ":" Avusturya "}}
@wawek kullanabilirsiniz, ben belgenin alanının yaklaşımınızı ve hiçbiri çalışıyorum güncellenmedi. Belli alanların bir güncellemesini zorlamak için var olan ve hiçbir şey olmuyorken, '_id' ile belgelerini araştırıyorum. Kod: 'BasicDBObject searchQry = new BasicDBObject (" _ id ", epID); TemelDBObject updateFields = new BasicDBObject(); updateFields.append ("isExpired", true); updateFields.append ("fetchStatus", FetchStatus.FETCHED.getID()); TemelDBObject setQuery = new BasicDBObject(); setQuery.append ("$ set", updateFields); UpdateResult updRes = dbC_Episodes.updateOne (searchQry, setQuery); –