簡體   English   中英

支持oplog的數據模型架構

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM