首页 > 解决方案 > ruby mongoDB insert_many - 成功消息但没有插入

问题描述

我正在尝试使用MongoDB 的 Ruby 驱动程序执行 insert_many,但它不起作用。任何帮助,将不胜感激。

这是我的示例模型:

class User
  include Mongoid::Document
  include Mongoid::Timestamps

  field :message
end

MongoDB Rails 代码:

client = Mongo::Client.new('mongodb://127.0.0.1:27017/development')
collection = client[:user]
u = Hash.new
u['message'] = 'hi'
documents = []
documents << u
result = collection.insert_many(documents)

#<Mongo::BulkWrite::Result:0x00007fa6ed4e99b8 @results={"n_inserted"=>1, "n"=>1, "inserted_ids"=>[BSON::ObjectId('5e9ac4c6c40dc6a955465a8f')]}>

当我验证插入时,它似乎可以工作,但是当我查询模型时,没有数据:

result
#<Mongo::BulkWrite::Result:0x00007fa6ed4e99b8 @results={"n_inserted"=>1, "n"=>1, "inserted_ids"=>[BSON::ObjectId('5e9ac4c6c40dc6a955465a8f')]}>

User.count
0

有什么建议么?

标签: ruby-on-railsrubymongodb

解决方案


我终于弄清楚了这个问题。它是集合本身。我需要做的就是获取集合,然后我可以应用 MongDB Ruby Driver 方法:

user_collection = User.collection

推荐阅读