ruby-on-rails - Mongoid 批量收集插入 : how to get the ids of the newly created items?

标签 ruby-on-rails mongodb mongoid bulkinsert mongoid4

如解释here ,将一组新文档批量插入到 MongoDB 集合中相当容易:

batch = [{:name => "mongodb"}, {:name => "mongoid"}]  
Article.collection.insert(batch)

但我觉得不容易的是如何检索新创建的 ID 列表。是否可以编写如下代码:

batch = [{:name => "mongodb"}, {:name => "mongoid"}]
result = Article.collection.insert(batch)

result[:ids] # not real code

提前致谢!

最佳答案

您现在可以使用 inserted_ids https://www.mongodb.com/docs/ruby-driver/master/api/Mongo/BulkWrite/Result.html 访问此数据所以对于你的例子就是

batch = [{:name => "mongodb"}, {:name => "mongoid"}]
result = Article.collection.insert_many(batch)

result.inserted_ids

关于ruby-on-rails - Mongoid 批量收集插入 : how to get the ids of the newly created items?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27839205/

相关文章:

ruby-on-rails - Heroku "at=error code=H10 desc="应用程序崩溃“method=GET path=/favicon.ico”

ruby-on-rails - 强制 bundler 在用户的主目录中安装gem

ruby-on-rails - RAILS 查询 - 如何使用 'where' 方法 - rails 4

ruby-on-rails - 当 Rails 和 Sinatra 之间通过 memcached 共享数据时,如何修复 Sinatra 不处理 ActiveSupport

ruby - 如何在 Mongoid 中为子类设置集合名称?

javascript - MongoDB javascript 传递参数

node.js - 是否可以在nodejs Async( waterfall ,系列等...)中构建动态任务列表

node.js - Nodejs Mongodb 对第一个 sort() 结果进行第二个 sort()

ruby-on-rails - 将 MongoDB 中的 _id 类型更改为整数是否不好?

ruby-on-rails - Mongo::Error::NoServerAvailable:群集中没有主服务器可用