我需要通过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