直接在具有mongoid的文档中嵌入文档

时间:2011-08-19 10:43:51

标签: ruby mongodb mongoid

我需要将嵌入文档数组批量插入现有文档。我已经尝试了以下代码,但它无法正常工作

 arr_loc = []
 arr_loc << Location.new(:name=> "test") << Location.new(:name=> "test2")
 biz = Business.first
 biz.locations = arr_loc
 biz.save # not working

目前我通过循环数组分别插入每个文档,我希望有更好的清洁方法来做到这一点。

来自mongo shell我们可以像这样轻松地做到这一点

> var mongo = db.things.findOne({name:"mongo"});
> print(tojson(mongo));
{"_id" : "497da93d4ee47b3a675d2d9b" , "name" : "mongo", "type" : "database"}
> mongo.data = { a:1, b:2};
{"a" : 1 , "b" : 2}
> db.things.save(mongo);
> db.things.findOne({name:"mongo"});
{"_id" : "497da93d4ee47b3a675d2d9b" , "name" : "mongo" , "type" : "database", "data" : {"a" : 1 , "b" : 2}}
>

检查link以获取更多信息..是否可以使用mongoid执行此操作?

1 个答案:

答案 0 :(得分:0)

在分配后调用save方法时出现了问题

 biz.locations = arr_loc  #this is fine
 biz.save # no need for that

Mongoid在赋值本身上更新文档,不需要显式保存。有关详细信息,请参阅此mongoid google group thread (Thanks Nick hoffman)

相关问题