Nik*_* So 5 ruby-on-rails mongodb mongoid
我有一个只带有名称字段的项目模型,还有与line_items的嵌入关系.class Project包括mongoid :: document字段:name embeds_many:line_items end
class LineItem
include mongoid::document
field :title
embedded_in :project, :inverse_of => :line_items
end
Run Code Online (Sandbox Code Playgroud)
我想这更像是mongo驱动程序的问题:如果我有这样的文件
db.project.find()[0]
{
_id : 123,
name : "housework",
line_items:[
{ title : "clean fridge", _id : 601},
{ title : "clean tub", _id : 602},
{ title : "clean oven", _id : 603}
]
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
Hol*_*est 15
当前的Mongoid(2.0.0)允许:
@category = @list.categories.find(params[:id])
@category.delete
Run Code Online (Sandbox Code Playgroud)
结果数据库查询/更新如下所示:
MONGODB test ['lists'].update({"_ id"=> BSON :: ObjectId('4d9522315569b11918000019')},{"$ pull"=> {"categories"=> {"_ id"=> BSON :: ObjectId ( '4d9523e05569b1191800001f')}}})
另请参阅http://mongoid.org/docs/persistence/上的最后一个示例
注意,我试过这个可以使用ActiveRecord(@ list.categories.delete(xx))的变体,这些似乎没有任何效果.
1/更新:
pro = Project.first
line_item = pro.line_items.find(601)
line_item.title = 'new title'
line_item.save
Run Code Online (Sandbox Code Playgroud)
2/删除:
pro = Project.first
line_item = pro.line_items.find(601)
pro.line_item_ids.delete(601)
pro.save
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9204 次 |
| 最近记录: |