如何通过原子操作在Ruby on Rails中实现MongoMapper嵌入式文档的删除?

更新于
2026-10-09 23:29:02
1阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计235个文字,预计阅读时间需要1分钟。

如何通过原子操作在Ruby on Rails中实现MongoMapper嵌入式文档的删除?

我成功利用MongoMapper实现了对$push和$set内置支持的运用,但无法实现$pull功能。以下是代码示例:

rubyclass Feed include MongoMapper::Document many :storiesend

class Story include MongoMapper::EmbeddedDocument key :title, Stringend

我成功地使用了MongoMapper对原子“$push”和“$set”的内置支持,但无法弄清楚“$pull”

class Feed include MongoMapper::Document many :stories end class Story include MongoMapper::EmbeddedDocument key :title, String end feed = Feed.first story = Story.new(:title => "Hello, world!") Feed.push(feed.id, :stories => story.to_mongo) #works fine Feed.set({:_id => feed.id, "stories.title" => "Hello, world!"}, "stories.$.title" => "Foo") #works fine Feed.pull( ??? )

如何使用拉动原子地删除故事?

要使用父ID和子ID以原子方式删除嵌入的文档,您可以执行以下操作:

Feed.pull(feed.id, :stories => {:_id => story.id})

如果您已拥有父文档,则可以执行以下操作:

feed.pull(:stories => {:_id => story.id})

现在我对提出这个问题感到尴尬(并回答它).这非常简单.

如何通过原子操作在Ruby on Rails中实现MongoMapper嵌入式文档的删除?

本文共计235个文字,预计阅读时间需要1分钟。

如何通过原子操作在Ruby on Rails中实现MongoMapper嵌入式文档的删除?

我成功利用MongoMapper实现了对$push和$set内置支持的运用,但无法实现$pull功能。以下是代码示例:

rubyclass Feed include MongoMapper::Document many :storiesend

class Story include MongoMapper::EmbeddedDocument key :title, Stringend

我成功地使用了MongoMapper对原子“$push”和“$set”的内置支持,但无法弄清楚“$pull”

class Feed include MongoMapper::Document many :stories end class Story include MongoMapper::EmbeddedDocument key :title, String end feed = Feed.first story = Story.new(:title => "Hello, world!") Feed.push(feed.id, :stories => story.to_mongo) #works fine Feed.set({:_id => feed.id, "stories.title" => "Hello, world!"}, "stories.$.title" => "Foo") #works fine Feed.pull( ??? )

如何使用拉动原子地删除故事?

要使用父ID和子ID以原子方式删除嵌入的文档,您可以执行以下操作:

Feed.pull(feed.id, :stories => {:_id => story.id})

如果您已拥有父文档,则可以执行以下操作:

feed.pull(:stories => {:_id => story.id})

现在我对提出这个问题感到尴尬(并回答它).这非常简单.

如何通过原子操作在Ruby on Rails中实现MongoMapper嵌入式文档的删除?