0
我正在研究將在MongoDB中的shell中運行的腳本。我只使用純Javascript而不是node.js或Meteor。我有一個數組,其中分別包含字段名稱和字段值的鍵和值對。我試圖使用數組中的鍵值作爲更新函數中的字段名稱。
var USER_ID = 1234567
var myArray = [
{ key : "name.first.nickname", value : "Sammy" }
]
for(var i = 0; i < myArray.length; i++){
setFields(myArray[i].key, myArray[i].value)
}
function setFields(key, value){
db.nameCollection.update(
{user : USER_ID},
{
$set: {
key : value
}
}
)
}
字段名總是被設置爲「鑰匙」,而不是關鍵變量的值「name.first.nickname」。有沒有辦法做到這一點?
它的工作!非常感謝你回答這個問題。我試着讓一個對象具有所有這些鍵/值對,然後將該對象傳遞給使用$ set進行更新的函數,所以我只需要$ set一次來執行更新。關鍵總是像objectName.name.first.nickname:「Sammy」。你會如何去添加對象中的所有鍵/值,然後用沒有對象名稱的對象中的鍵/值來執行$ set? – jdub7
我最終發現瞭如何使用對象執行setFields函數,而不是逐字段執行。它這樣做是通過: – jdub7
函數setFields(對象){ \t變種更新= {$集合:{}} \t爲(在對象VAR鍵){ \t \t VAR值=對象[鍵] \t \t更新$。設置[key] =值 \t} – jdub7