[英]Data model schema that supports oplog
我正在嘗試使用Meteor實施調查應用程序。 我對數據建模的第一個想法是:
我將收集答案的意見書:
{
formId: "........",
values: [
{question: "What is your name?", answer:"Aykut Yaman"},
{question: "How old..?", answer:"7"},
{question: "Hobbies?", answer: ["Kitap Okumak", "Spor Yapmak"]},
{question: "Foo", answer: "Lorem ipsum ..."}
]
}
然后我將這樣查詢集合,以便找出調查結果,如何對某個問題給出特定的答案:
submissions.find({$and: [{"values.answer": "7"}, {"values.question": "How old..?"}]})
然后我意識到這個查詢是不正確的 ,我必須使用$elemMatch
。 但似乎$elemMatch
在Meteor中是不受支持的投影 。
如何使用oplog更改查詢或集合,並使集合簡單?
一個更好的模型是將問題的答案分開:
{
formId: "idOfForm",
values: [
{_id: "id1", question: "What is your name?"},
{_id: "id2", question: "How old..?", answer:"7"},
{_id: "id3", question: "Hobbies?", answer: ["Kitap Okumak", "Spor Yapmak"]},
{_id: "id4", question: "Foo", answer: "Lorem ipsum ..."}
]
}
並在答案集中
{_id: "answer1", formId: "idOfForm", questionId: "id1", answer:"Aykut Yaman"}
... and so on
這將為您帶來額外的好處,因為您不必為每個答案存儲問題,因此可以節省一些磁盤空間。 您不必為每個答案存儲formId
,但是它可以提高查詢表單的性能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.