指定字段值上的Mongo Ruby驱动程序#find()

德里克
  • 红宝石: ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
  • RubyGem: mongo (2.0.4)

我需要帮助来查询带有其gem的MongoDB数据库并更新适当的字段。

编辑:我正在尝试遍历Mongo数据库的文档,下拉那些文档中特定字段的值,并稍后在脚本中更新它们。

目标
  1. 在数据库中查询字段partner_id为“伙伴”和字段state为“已设置”的文档,并仅返回_idandconfig字段下的值

    • 在这之后,我将遍历每个文档,生成一个密码,并更新另一个数据库。
  2. 使用新生成的每个文档config字段的密码更新数据库

我已经不知所措了,因为我已经看到了大约六种不同的语法编写方式,而且除非我已经知道如何做这些文档,否则文档对他们没有多大帮助。任何帮助将不胜感激!

#!/usr/bin/env ruby

require 'json'
require 'net/http'
require 'mongo'

# Fetch the addons database URI and connect.
db_uri = ENV['DATABASE_URI']
client = Mongo::Client.new(db_uri)

# Connect to the needed collection and pull down each document to be looped over individually.
# **Having trouble getting this to work. The result is just '= []' - don't know what I'm doing wrong.
client[:collection].find("partner_id" => "partner", "state" => "provisioned", :fields => ["_id", "config"]).each {

  # Need something here to pull down the values from each document's '_id' and 'config' fields and assign them to variables.
  user_id =
  user_config =
  user_config = JSON.parse(user_config)

  # ...generating password and updating other database...

  # Convert the Hash of the user's new configuration into JSON, and update the original database with it.
  # Not sure if any of this is correct. When querying to check, the database doesn't seem to be updated.
  user_config = user_config.to_json
  client[:collection].update(
    {"_id" => user_id},
    {'$set' => {
      "config" => user_config
      }
    }
  )
}
end
return
亩太短

您找不到任何东西,因为:

:fields => ["_id", "config"]

的参数find未指定您想要的字段,find只是将其视为要查找的第三个文档字段。您的文档可能没有名为field字段该字段的值是这些字符串的数组,因此查询无提示地根本找不到任何内容。

如果要限制查询,则需要使用projection

client[:collection].find("partner_id" => "partner", "state" => "provisioned")
                   .projection('_id' => 1, 'config' => 1)
                   .each { |doc| ... }

然后在该each区块内doc将是一个哈希,因此您可以说:

user_id     = doc['user_id']
user_config = doc['user_config']

如果我正确阅读了您的代码,则该代码user_config应该已经是Hash,因此您可能不需要自己解析它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

指定字段值上的Mongo Ruby驱动程序#find()

来自分类Dev

Mongo全文搜索,通过Ruby驱动程序进行评分

来自分类Dev

如何使用mongo ruby驱动程序查找与特定值数组匹配的条目

来自分类Dev

如何使用mongo cxx驱动程序检索特定字段的值

来自分类Dev

我该如何搜索db.collection.find({foo:/ ^ bar $ / i}); 在mongo上,但使用Mongo Java驱动程序

来自分类Dev

我该如何搜索db.collection.find({foo:/ ^ bar $ / i}); 在mongo上,但使用Mongo Java驱动程序

来自分类Dev

Mongo C#驱动程序查询(选择子字段)

来自分类Dev

新的Mongo C驱动程序中是否有等效的mongo_find_one()

来自分类Dev

NodeJS MongoDB驱动程序:在插入时指定字段类型

来自分类Dev

在AWS Elastic Beanstalk上安装php mongo驱动程序

来自分类Dev

Mongo scala 驱动程序:无法添加浮点值

来自分类Dev

如何在mongodb本机驱动程序的find()上进行字段选择?

来自分类Dev

指定IE驱动程序的日志路径

来自分类Dev

Linux上的NVIDIA驱动程序黑屏

来自分类Dev

在Windows 8.1上禁用驱动程序

来自分类Dev

在Lubuntu上启用驱动程序?

来自分类Dev

Ubuntu 12.10上的Nvidia驱动程序

来自分类Dev

EFI分区上的驱动程序

来自分类Dev

Ubuntu 19.10 上的 Nvidia 驱动程序

来自分类Dev

在Lubuntu上启用驱动程序?

来自分类Dev

在Mono中使用C#驱动程序比较mongo集合的两个字段

来自分类Dev

如何使用Java驱动程序使用Mongo Bulk Update?

来自分类Dev

Mongo DB C#驱动程序2.0同步计数

来自分类Dev

Mongo在Java驱动程序中插入$ currentDate

来自分类Dev

使用Scala Mongo驱动程序序列化为对象?

来自分类Dev

使用Java驱动程序获取Mongo Instance的版本

来自分类Dev

无法构建32位Mongo DB C ++驱动程序

来自分类Dev

Mongo Java驱动程序不遵循限制方法

来自分类Dev

使用Mongo驱动程序2升级IBsonSerializer

Related 相关文章

  1. 1

    指定字段值上的Mongo Ruby驱动程序#find()

  2. 2

    Mongo全文搜索,通过Ruby驱动程序进行评分

  3. 3

    如何使用mongo ruby驱动程序查找与特定值数组匹配的条目

  4. 4

    如何使用mongo cxx驱动程序检索特定字段的值

  5. 5

    我该如何搜索db.collection.find({foo:/ ^ bar $ / i}); 在mongo上,但使用Mongo Java驱动程序

  6. 6

    我该如何搜索db.collection.find({foo:/ ^ bar $ / i}); 在mongo上,但使用Mongo Java驱动程序

  7. 7

    Mongo C#驱动程序查询(选择子字段)

  8. 8

    新的Mongo C驱动程序中是否有等效的mongo_find_one()

  9. 9

    NodeJS MongoDB驱动程序:在插入时指定字段类型

  10. 10

    在AWS Elastic Beanstalk上安装php mongo驱动程序

  11. 11

    Mongo scala 驱动程序:无法添加浮点值

  12. 12

    如何在mongodb本机驱动程序的find()上进行字段选择?

  13. 13

    指定IE驱动程序的日志路径

  14. 14

    Linux上的NVIDIA驱动程序黑屏

  15. 15

    在Windows 8.1上禁用驱动程序

  16. 16

    在Lubuntu上启用驱动程序?

  17. 17

    Ubuntu 12.10上的Nvidia驱动程序

  18. 18

    EFI分区上的驱动程序

  19. 19

    Ubuntu 19.10 上的 Nvidia 驱动程序

  20. 20

    在Lubuntu上启用驱动程序?

  21. 21

    在Mono中使用C#驱动程序比较mongo集合的两个字段

  22. 22

    如何使用Java驱动程序使用Mongo Bulk Update?

  23. 23

    Mongo DB C#驱动程序2.0同步计数

  24. 24

    Mongo在Java驱动程序中插入$ currentDate

  25. 25

    使用Scala Mongo驱动程序序列化为对象?

  26. 26

    使用Java驱动程序获取Mongo Instance的版本

  27. 27

    无法构建32位Mongo DB C ++驱动程序

  28. 28

    Mongo Java驱动程序不遵循限制方法

  29. 29

    使用Mongo驱动程序2升级IBsonSerializer

热门标签

归档