gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 23:33:03 25 4
gpt4 key购买 nike

我在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com