在MongoDB中,我有一个包含记录的集合。这些记录非常复杂。现在,我想要复制其中的一条记录。
我可以轻松地选择其中一条记录。
mongo> var row = db.barfoo.find({"name":"bar"});
现在我其实不知道该怎么办。我不知道row
里面有什么,因为我找不到打印它内容的方法。我应该怎样修改特定属性并最终重新插入这一行。
mongo> db.barfoo.insert(row);
谢谢。
在MongoDB中,我有一个包含记录的集合。这些记录非常复杂。现在,我想要复制其中的一条记录。
我可以轻松地选择其中一条记录。
mongo> var row = db.barfoo.find({"name":"bar"});
现在我其实不知道该怎么办。我不知道row
里面有什么,因为我找不到打印它内容的方法。我应该怎样修改特定属性并最终重新插入这一行。
mongo> db.barfoo.insert(row);
您需要更改 _id
的值 - 生成新的:
var row = db.barfoo.findOne({"name":"bar"});
row._id = ObjectId();
db.barfoo.insert(row);
祝你好运!
var doc = db.barfoo.findOne( { "name": "bar" } );
doc.name = "Mr Bar";
find()
命令 返回一个游标,因此如果您想提取单个文档,则应使用 findOne()
函数。该函数返回单个文档。find()
函数并迭代游标以检索每个文档:db.barfoo.find( { "name": "bar" } ).forEach( function( doc ){
doc.name = "Mr Bar";
}
insert / save
方法将数据持久化到MongoDB中。不要忘记更改/删除 _id
属性,以便您实际创建一个新文档。
print()
函数。如果您想要更加视觉上吸引人的输出,可以使用printjson()
。findOne
而不是 find_one
:P - martskins
_id
属性,Mongo 会自动创建它。我认为你不必像这样手动创建 - 请参见此处。 - Lix_id
才能使其正常工作。 - chakeda