ruby-on-rails - MongoId 与哈希字段 : values are different with MongoDB and with Rails

标签 ruby-on-rails mongodb mongoid

我在 MongoId 中有一个带有此字段的模型:

  field :m, as: :monthly, type: Hash

结构是每月哈希,月份数字作为键,数量作为值

在 Rails 控制台中查询特定行时,我有以下内容:

<_id: 5ddf95cd1dd6150008356ec6, m(monthly): {"1"=>0, "2"=>0, "3"=>3, "4"=>0, "5"=>0, "6"=>0, "7"=>0, "8"=>0, "9"=>0, "10"=>0, "11"=>0, "12"=>0}>

在 MongoDB 控制台中查询相同的 id 时,我有以下内容:

db.myCollection.find({"_id": ObjectId("5ddf95cd1dd6150008356ec6")});
{ "_id" : ObjectId("5ddf95cd1dd6150008356ec6"), "m" : { "1" : 0, "2" : 0, "3" : 0, "4" : 0, "5" : 0, "6" : 0, "7" : 0, "8" : 0, "9" : 0, "10" : 0, "11" : 2, "12" : 0 } }
  • 对于每月[3],我在 MongoDb 控制台中有 0 个,在 Rails 控制台中有 3
  • 对于每月[11],我在 MongoDb 控制台中有 2 个,在 Rails 控制台中有 0

我不明白为什么

我的 MongoDb 版本是 v3.4.13(shell 和服务器)

我使用的是 Rails 5.2.2、Ruby 2.4.5 和 MongoId 7.0.2

编辑:

以下是有关 MongoId 查询和结果的信息:

MyCollection.where(id: '5ddf95cd1dd6150008356ec6').first

<MyCollection _id: 5ddf95cd1dd6150008356ec6, m(monthly): {"1"=>0, "2"=>0, "3"=>3, "4"=>0, "5"=>0, "6"=>0, "7"=>0, "8"=>0, "9"=>0, "10"=>0, "11"=>0, "12"=>1}>
MyCollection.collection.find(_id: BSON::ObjectId('5ddf95cd1dd6150008356ec6')).first

{"_id"=>BSON::ObjectId('5ddf95cd1dd6150008356ec6'), "m"=>{"1"=>0, "2"=>0, "3"=>3, "4"=>0, "5"=>0, "6"=>0, "7"=>0, "8"=>0, "9"=>0, "10"=>0, "11"=>0, "12"=>1} }

我的问题仅针对这个id 5ddf95cd1dd6150008356ec6,对于mongodb和mongoid中的其他id数据是匹配的

最佳答案

Mongoid 查询是什么?

使用直接集合访问来使用驱动程序检索原始文档并与 Mongoid 结果进行比较:

irb(main):014:0> Band.collection.find(_id: Band.first.id).first
=> {"_id"=>BSON::ObjectId('5de4ba7b026d7c31708db208')}

验证您正在同一数据库上查询同一集合(例如,两个查询中使用相同的环境)。

关于ruby-on-rails - MongoId 与哈希字段 : values are different with MongoDB and with Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59086871/

相关文章:

ruby - 使用嵌入文档时的 ActiveRecord 嵌套验证 : Mongoid

mongoid - 如何使用 Mongoid 重新索引集合?

ruby-on-rails - 按字母顺序排序并按首字母分组

java - 确保使用 GridFS - MongoDB Java API 完成文件插入

node.js - Mongo NodeJS project() 不是一个函数

node.js - Mongoose 获取具有值的日期数组

ruby-on-rails - 在生产中使用 MongoDB 构建索引的时间和频率

ruby-on-rails - Rails 完整错误页面未显示 View 错误

ruby-on-rails - 在 "tmp:clear"之后运行任务

ruby-on-rails - 我可以在 Rails 中使用 link_to 创建链接数组吗?