2
Node.JS,MONGODB,不使用貓鼬。MongoDB Upserts變量名稱作爲密鑰(Node.JS)
我有一個文件,我正在保存。當我使用UPSERT,其結構中的數據像這樣:
{ "_id" : ObjectId("573a123f55e195b227e7a78d"),
"document" :
[ {"name" : "SomeName" } ]
}
當我使用插入插入它所有的根目錄下:
{ "_id" : ObjectId("573a123f55e195b227e7a78d"), "name" : "SomeName" }
這顯然會導致大量的不一致。我嘗試了各種各樣的東西。我已經嘗試了各種方法,如findOneAndReplace,使用Upsert更新,我試過替換$ setOnInsert。當Upsert似乎參與其中時,這一切都會發生同樣的事情。
我曾嘗試使用文件[0]來訪問所述陣列的第一塊,但將引發一個錯誤...「意外的標記[」
我已經通過嘗試了各種方法和挖小時各種文件,並且對其他人有這樣的問題進行了高低調查,但對於其他人來說似乎沒有很好的文件記錄。
任何人都有任何建議,以確保所有的字段都在根級別,而不是嵌套在變量名下?下面的相關代碼。
findReplace: function(db, document, collection) {
var dbCollection = db.collection(collection);
var filter = document.name;
return new Promise(function(resolve, reject) {
dbCollection.updateOne({
"name" : filter
}, {
document
}, {
upsert: true
}, function(err, result) {
if (err) {
console.log('error', err)
reject(err);
}
console.log("Found Document and Upserted replacement Document");
resolve([{'status' : 'success'}]);
});
});
}
完美,謝謝!我一直在努力跟上ES6的變化,但總是有新的東西。它總是小事。 – FouMedia