我應該從一開始:我知道MongoDB和一般的文檔樣式數據庫。
我有一個集合,它看起來是這樣的:
{
"_id" : ObjectId("554a5e72b16f31ff0894310e"),
"title" : "ABC",
"admins" : [
"personA",
"personB",
],
"email_address" : "[email protected]"
}
{
"_id" : ObjectId("554a5e72b16f31ff0894310f"),
"title" : "Junk Site",
"admins" : [
"personA",
"personB"
],
"email_address" : "[email protected]"
}
{
"_id" : ObjectId("554a5e72b16f31ff08943110"),
"title" : "Company Three Site",
"admins" : [
"personC"
"personD",
],
"email_address" : "[email protected]"
}
我需要做的,是從Company One
追加管理員列表,以Company Three
這樣Company Three
現在有四個管理員(A,B,C ,D)。
我嘗試以下,因爲它似乎相當直截了當,我 - 從源頭獲取數據,並直接附加到目標:
db.runCommand({
findAndModify : 'sites',
query : {'title' : 'Company Three Site'},
update : { '$addToSet' :
{'admins' :
db.projects.find({'title' : 'ABC'}, {'_id' : 0, 'admins' : 1}
}
}
})
然而,這並不正常工作。
我仍然在試圖找出辦法,我可以直接做到這一點,但問題...
1)這甚至可能通過使用單個命令,或者我需要拆分這個嗎? 2)我的邏輯思想訓練是否有意義,或者我應該做一些更傳統的MongoDB風格數據庫的其他/更簡單的方法嗎?
爲什麼'_id'所有三個文件一樣嗎?這是不允許的 –
@ExplosionPills抱歉在嘗試創建示例時複製粘貼錯誤 – Sagar