0
我使用的是MongoDB
3.2和MongoDB Java Driver
3.2。我想更新具有其ID的文檔的值。爲了做到這一點我嘗試使用以下兩種方法(在Stackoverflow和MongoDB Blog發現):使用Java更新MongoDB中的文檔
方法1:
for(String docID : expiredDocsIDs) {
Bson filter = Filters.eq("_id", docID);
Bson updates = Updates.set("isExpired", true);
dbCollection.findOneAndUpdate(filter, updates);
}
方法2:
expiredDocsIDs.stream()
.forEach(docID -> {
BasicDBObject searchQuery = new BasicDBObject("_id", docID);
BasicDBObject updateFields = new BasicDBObject();
updateFields.append("isExpired", true);
updateFields.append("fetchStatus", "FETCHED");
BasicDBObject setQuery = new BasicDBObject();
setQuery.append("$set", updateFields);
dbCollection.updateOne(searchQuery, setQuery);
});
這些方法都不起作用。 它遍歷文檔ID列表,執行代碼,但在代碼結束時,當我檢查DB中的文檔時,我試圖更新的文檔字段中沒有任何更改。
我的問題:
我怎樣才能在MongoDB
更新的特定文件?
AFAIK那些是唯一可能的解決方案。 – Pragnani
@PragnaniKinnera,它不適合我。我檢查過,'_id'是正確的,但代碼執行後沒有任何改變。我想念什麼? –
我認爲你肯定錯過了一些東西。什麼不起作用?如何解釋你認爲「不工作」的含義。那麼發生了什麼?你期望發生什麼?所有這些在這個問題上都是缺失的。瞭解我們其他人,我們就是這麼做的。所以我們需要了解爲什麼它不夠好。 –