我需要一些关于自然语言数据库的 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,我需要:
- 列出给定用户和语言的所有单词
这是一个好方法吗?或者你能想到一个更好的吗?
希望这个问题足够清楚,并且有人可以帮我解决这个问题;)
谢谢你们!