2011-11-30 76 views
0

我有幾千個字符串(items),我想要翻譯。我已經構建了我的MongoDB,如下所示:帶嵌入式文檔的MongoDB數據庫設計

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

:translations字段可以包含更多的語言和屬性。我想運行查詢,例如檢索所有沒有特定語言翻譯的項目,或者檢索所有具有「bonjour」作爲法語翻譯的項目。

我不明白我該怎麼做。有沒有更好的方法來構建我的數據庫用於這些目的?我正在使用node.js.

謝謝。

回答

2

我想運行查詢,如檢索,沒有翻譯特定語言的所有項目,

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

...或檢索所有具有'bonjour'作爲法語翻譯的項目。

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

是否有更好的方法來組織我的數據庫爲這些目的?

我相信你有正確的結構。你將不得不熟悉Dot Notation

0

我會說爲了您的目的,模型是好的。你需要mongo dot notation,你可以使用$exists尋找fr和點符號的卓悅 -

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