我需要的MongoDB架构设计的一些建议了自然语言数据库。MongoDB的架构设计语言数据库
我需要存储为每种语言文字和文字,如:
lang: {
_id: "English",
texts : [
{ text : "This is a first text",
date : Date("2011-09-19T04:00:10.112Z"),
tag : "test1"
},
{ text : "Second One",
date : Date("2011-09-19T04:00:10.112Z"),
tag : "test2"
}
],
words : [
{
word : "This",
},
{
word : "is",
},
{
word : "a",
},
{
word : "first",
},
{
word : "text",
},
{
word : "second",
},
{
word : "one",
}
]
}
然后我需要知道每个单词和文本用户有关联。单词/文本数量往往很大,我需要列出一种语言的所有单词以及用户为该语言关联的所有单词。
从我的角度我认为存储与给定词的单词的数组相关的user_ids也许是一个好办法,如:
lang: {
_id: "English",
texts : [
...
],
words : [
{
word : "This",
users: [user1,user2,user3]
},
{
word : "is",
users: [user1,user2]
},
...
]
}
铭记,一个字可以关联到数百用户和文件限制(因为我读)为4MB和千,我需要:
- 名单给定用户和语言
这是一个好方法吗?或者你能想到一个更好的?
希望这个问题不够清楚,有人可以给我这样的帮助;)
谢谢大家!
这意味着,如果你需要单词“this”与user1和user2相关联,否则你必须在单词集合上正确地记录文档? – jribeiro
是的,正确的,我的意思是一个完全平坦的结构,所以如果user1和user2都有“this”和“that”,那么你最终会收集4个文档。 – McGarnagle
我明白了。因此,如果我理解正确,以避免文档限制,并考虑到用户将有一千字的话,我可以有用户,文本和单词共享,并具有如上所述的文档。对? – jribeiro