草庐IT

mongodb - mongo点符号歧义

coder 2023-10-29 原文

我喜欢 MongoDB,我突然想到了一个小的歧义,我想知道是否有人以前见过这个并且可能会知道答案:-)。

在 mongo 中,要访问子对象,您可以使用点符号,例如:

db.persons.find({ "address.state" : "CA" })

这很简单。 mongo 如何(如果有的话)处理以下之间的区别:

{
    "address" { "state" : "CA" }
}

{
    "address.state" : "CA"
}

据我所知,点在键中是合法的。此外,我相信这也是一份法律文件:

{
    "address" { "state" : "A" },
    "address.state" : "B"
}

在这种情况下,我可以看到此查询返回 "A""B":

db.persons.find({}, {"address.state"}) // all docs selecting address.state as result.

我想数组也会出现类似的潜在问题:

{"a":["test"]}

可以通过以下方式访问:

{"a.0"}

当然

{"a" {"0" : "test"} }

也可以通过以下方式访问:

{"a.0"}

想法?经历?传统智慧就是不这样做吗?

最佳答案

诸如“address.state”之类的键是不合法的。来自 here :

Field names cannot contain dots (i.e. .) or null characters, and they must not start with a dollar sign (i.e. $).

关于mongodb - mongo点符号歧义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10333540/

有关mongodb - mongo点符号歧义的更多相关文章

  1. ruby-on-rails - 创建 ruby​​ 数据库时惰性符号绑定(bind)失败 - 2

    我正在尝试在Rails上安装ruby​​,到目前为止一切都已安装,但是当我尝试使用rakedb:create创建数据库时,我收到一个奇怪的错误:dyld:lazysymbolbindingfailed:Symbolnotfound:_mysql_get_client_infoReferencedfrom:/Library/Ruby/Gems/1.8/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundleExpectedin:flatnamespacedyld:Symbolnotfound:_mysql_get_client_infoReferencedf

  2. ruby - 鸭子输入字符串、符号和数组的优雅方式? - 2

    这是针对我无法破坏的现有公共(public)API,但我确实希望对其进行扩展。目前,该方法采用字符串或符号或任何其他在作为第一个参数传递给send时有意义的内容我想添加发送字符串、符号等列表的功能。我可以只使用is_a吗?数组,但还有其他发送列表的方法,这不是很像ruby​​。我将调用列表中的map,所以第一个倾向是使用respond_to?:map。但是字符串也会响应:map,所以这行不通。 最佳答案 如何将它们全部视为数组?String的行为与仅包含String的Array相同:deffoo(obj,arg)[*arg].eac

  3. ruby - 如果它是标点符号,我怎么能从字符串中删除最后一个字符,在 ruby​​ 中? - 2

    啊,正则表达式有点困惑。我正在尝试删除字符串末尾所有可能的标点符号:ifstr[str.length-1]=='?'||str[str.length-1]=='.'||str[str.length-1]=='!'orstr[str.length-1]==','||str[str.length-1]==';'str.chomp!end我相信有更好的方法来做到这一点。有什么指点吗? 最佳答案 str.sub!(/[?.!,;]?$/,'')[?.!,;]-字符类。匹配这5个字符中的任何一个(注意,。在字符类中并不特殊)?-前一个字符或组

  4. ruby - 如何在 Ruby 字符串中插入项目符号字符? - 2

    我正在尝试创建一个带有项目符号字符的Ruby1.9.3字符串。str="•"+"helloworld"但是,当我输入它时,我收到有关非ASCII字符的语法错误。我该怎么做? 最佳答案 你可以把Unicode字符放在那里。str="\u2022"+"helloworld" 关于ruby-如何在Ruby字符串中插入项目符号字符?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1195

  5. ruby - 从 Ruby 中的国家代码获取表情符号标志 - 2

    我想将“US”之类的国家代码转换为表情符号标志,即将“US”字符串转换为Ruby中适当的Unicode。Here'sanequivalentexampleforJava 最佳答案 使用tr将字母字符转换为其区域指示符号:'US'.tr('A-Z',"\u{1F1E6}-\u{1F1FF}")#=>"??"当然你也可以直接使用Unicode字符:'US'.tr('A-Z','?-?')#=>"??" 关于ruby-从Ruby中的国家代码获取表情符号标志,我们在StackOverflow上找

  6. ruby - 使用指向 ruby​​ 可执行文件的符号链接(symbolic link)时查找相关库 - 2

    假设您有一个可执行文件foo.rb,其库bar.rb的布局如下:/bin/foo.rb/lib/bar.rb在foo.rb的header中放置以下要求以在bar.rb中引入功能:requireFile.dirname(__FILE__)+"../lib/bar.rb"只要对foo.rb的所有调用都是直接的,这就可以正常工作。如果你把$HOME/project和符号链接(symboliclink)foo.rb放入$HOME/usr/bin,然后__FILE__解析为$HOME/usr/bin/foo.rb,因此无法找到bar.rb关于foo.rb的目录名.我意识到像ruby​​gems这

  7. Ruby:如何在 sprintf 输出中包含 % 符号? - 2

    我有:sprintf("%02X"%13)哪些输出:=>"OD"我希望我的输出是:=>"%0D"我试过:sprintf("\%%02X"%13)但我得到一个错误警告:格式字符串的参数过多。这同样适用于:sprintf("%%02X"%13)是否可以单独在sprintf中添加前导%? 最佳答案 文字%必须转义为%%:sprintf('%%')#=>"%"此外,您应该使用sprintf或%,而不是两者:sprintf('%%%02X',13)#=>"%0D"#^#commahere'%%%02X'%13#=>"%0D"#^#percen

  8. ruby-on-rails - 为什么不能使用符号而不是字符串来访问 Rails 模型属性? - 2

    我需要在数据库更新前后比较一些Rails(2.3.11)模型属性值,因此我首先查找我的记录并将现有属性值保存在哈希中,如下所示:id=params[:id]work_effort=WorkEffort.find(id)ancestor_rollup_fields={:scheduled_completion_date=>work_effort.scheduled_completion_date}work_effort.update_attributes(params.except(:controller,:action))#etcetera请注意,我坚持使用符号作为哈希键的“最佳实践”

  9. ruby-on-rails - ruby:对符号数组进行排序 - 2

    由于符号不响应sort使用的方法,有没有人有对符号数组进行排序的技术?有兴趣看到一些其他的想法。 最佳答案 嗯,symbols.sort_by{|sym|sym.to_s}有效。也在1.9符号中做响应,所以你可以做symbols.sort. 关于ruby-on-rails-ruby:对符号数组进行排序,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4129887/

  10. ruby - 在 Ruby 中将整数转换为带符号的字符串 - 2

    我有一份报告,其中列出了总值,然后在括号中列出了变化。例如:歌曲:45首(比上周增加10首)所以我想将整数10打印为“+10”,将-10打印为“-10”我现在正在做(song_change>=0?'+':'')+song_change.to_s有没有更好的办法? 最佳答案 "%+d"%song_changeString#%根据字符串中的打印说明符格式化右侧。打印说明符“%d”也表示十进制。整数,添加到打印说明符的“+”强制始终打印适当的符号。您可以在Kernel#sprintf中找到有关打印说明符的更多信息,或在manpagefor

随机推荐