基于MongoDB中的子文档分片键创建TagRange

时间:2013-08-09 11:08:40

标签: mongodb sharding

我正在寻找关于我做错了什么或者我应该做些什么来建议在MongoDB中标记分片集合的建议,它在子文档字段上有一个分片键。

我正在使用MongoDB 2.4和My User集合结构看起来像打击,并且在AccountId上键入:

  • 名字
  • 姓氏
  • 帐户(子文档)
    • AccountId< - shard key
    • Field X
    • Field Y -
    • ......等等

如果像这样调用addTagRange()助手:

sh.addTagRange("Mydb.User", {"Account.AccountId":MinKey}, {"Account.AccountId":MaxKey}, "ssd")

我得到的错误是:

JavaScript execution failed: can't have . in field names [Account.AccountId] at src/mongo/shell/collection.js:L143

我已尝试删除引号,但这会产生类似的错误:

JavaScript execution failed: SyntaxError: Unexpected token .

所以我现在想知道这可以通过帮助器实现,或者我是否必须编辑配置数据库以使其工作。我原以为这是可能的,因为MongoDB允许首先在子文档上创建分片键。

感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:0)

您可以使用\uff0e代替点

sh.addTagRange("Mydb.User", {"Account\uff0eAccountId":MinKey}, {"Account\uff0eAccountId":MaxKey}, "ssd")

了解更多: http://docs.mongodb.org/manual/faq/developers/#faq-dollar-sign-escaping

How to use dot in field name?