我需要通過dbshell複製(克隆)集合中的對象。有這樣的事情:如何克隆(複製)同一個db集合中的MongoDB對象?
> db.users.distinct('nickname')
[
"user1",
"user2",
"user3",
"user4"
]
>
下用戶1選擇用戶收集一個複雜的對象,我怎麼能複製的對象,然後改變(重命名)用戶1場在用戶X?
我需要通過dbshell複製(克隆)集合中的對象。有這樣的事情:如何克隆(複製)同一個db集合中的MongoDB對象?
> db.users.distinct('nickname')
[
"user1",
"user2",
"user3",
"user4"
]
>
下用戶1選擇用戶收集一個複雜的對象,我怎麼能複製的對象,然後改變(重命名)用戶1場在用戶X?
代碼
> user = db.users.findOne({'nickname': 'user1'})
> user.nickname = 'userX'
> delete user['_id']
> db.users.insert(user)
說明
你需要找到用戶對象,並把它放入變量。比你需要修改你想要的屬性,比你需要插入整個對象作爲新的。要達到該目的,您需要刪除對象已有的_id
屬性。而不僅僅是使用insert
來創建新的。
_id字段是必填字段,我們不能像這樣刪除它。我所做的是調用toJSON()到返回的對象,然後刪除_id。
var rObject = dbObject.toJSON();
delete rObject._id;
db.insert(rObject);
這是偉大的,謝謝 – 2012-03-24 13:53:49
@ LucaG.Soave歡迎您!謝謝:) – lig 2012-03-24 13:56:40
@ LucaG.Soave你的更新爲我的代碼大幅改變 最初的想法是不刪除'user1'。 – lig 2014-04-22 14:23:44