MongoDB数据库设计与嵌入式文档

时间:2011-11-30 00:20:53

标签: mongodb node.js

我想要翻译几千个字符串(items)。我按如下方式构建了我的MongoDB:

@document = {:item => "hello", :translations => {:fr => {:name => "bonjour", 
:note => "easy"}, :es => {:name => "hola", :note => "facil"}}}

:translations字段可以包含更多语言和属性。我想运行查询,例如检索没有特定语言翻译的所有项目,或检索所有“bonjour”作为法语翻译的项目。

我看不出我怎么做到这一点。有没有更好的方法来构建我的数据库用于这些目的?我正在使用node.js。

感谢。

2 个答案:

答案 0 :(得分:3)

  

我想运行查询,例如检索没有特定语言翻译的所有项目,

.find({ 'translations.fr': {$exists:false} })
  

...或检索所有“bonjour”作为法语翻译的项目。

.find({ 'translations.fr.name': "bonjour" })
  

为了这些目的,有没有更好的方法来构建我的数据库?

我相信你有正确的结构。您必须熟悉Dot Notation

答案 1 :(得分:1)

我会说,为了你的目的,这个模型很好。您需要mongo dot notation,您可以使用$exists查找fr和点缀符号 -

find({ "fr.name" : "bonjour" })