Cât de puternic este limbajul de interogare al MongoDB și Care este capacul pentru machete?

Ok, haideți să aruncăm o privire asupra unei imagini de ecran. Aceasta este o imagine a unui fișier text pe care l-am numit Fișier VCF . Câte rânduri ar putea avea? Poate 100.000 de rânduri de lucruri de genul:

enter image description here

Sunt absolut nou și nou-născut la MongoDB, așa că m-am gândit la o schemă de genul asta:

enter image description here

Deci, de exemplu, observați că REF în acel fișier text este o cheie/valoare în schema mea. Dar cum am spus că ar putea avea 200.000 de rânduri ... Asa de:

  1. Sunt Arrays încă un lucru bun pe care îl pot folosi? stocarea a 200.000 de membri în acea matrice?
  2. Cât de puternic pot interoga? astfel încât în ​​fișierul text avem rânduri, de exemplu, că # CHROM20 în POS din 14370 are un REF de "G" și ALT de "A" ... astfel încât cu schema mea putem găsi și returnează? Să spunem că spunem căutarea pacienților care au "G" în câmpul REF, așa că interogările MongoDB sunt suficient de puternice pentru a căuta și pentru a returna un astfel de rezultat?
  3. Este o schemă rea? Aveți recomandări/sfaturi mai bune?
  4. Orice interogare de probă pe care ați putea-o da pentru întrebarea mea qquesry va fi foarte utilă pentru a-mi da câteva idei ..
0
Matthew Shopsin se întreabă: Să spunem că spunem căutarea pacienților care au "G" în câmpul REF : Ref .: [TCG, TA] conta sau doar ref: [A, T, ATC, G]?
adăugat autor assylias, sursa

2 răspunsuri

Să spunem că spunem căutarea pacienților care au "G" în câmpul REF

Are ref: [TCG, TA] conta sau doar ref: [A, T, ATC, G]?

0
adăugat
Salut Matthew, Îmi pare rău pentru răspunsul meu târziu. Și da, doar: [A, T, ATC, G] ...
adăugat autor Bohn, sursa
Acest lucru ar putea fi un comentariu, dar nu aveți reputația de a posta unul. Deci, am trimis comentariul dvs. sub întrebarea - vă sugerez să ștergeți răspunsul dvs. (sau să îl transformați într-un răspuns real odată ce obțineți informațiile pe care le solicitați).
adăugat autor assylias, sursa

Ne pare rău pentru răspunsul foarte lent, am plecat la vacanță când ați răspuns. Următoarea sintaxă atinge rezultatul dorit.

> db.refs.insert({ref:[A,T,ATC,G]})
> db.refs.insert({ref:['A','T','ATC','G']})

> db.refs.findOne()
{
    "_id" : ObjectId("4fda21bb8a807d87a65aba37"),
    "ref" : [
        "A",
        "T",
        "ATC",
        "G"
    ]
}
> db.refs.insert({ref:['TCG','TA']})
> db.refs.find()
{ "_id" : ObjectId("4fda21bb8a807d87a65aba37"), "ref" : [ "A", "T", "ATC", "G" ] }
{ "_id" : ObjectId("4fda22438a807d87a65aba38"), "ref" : [ "TCG", "TA" ] }


> db.refs.find({ref :{$all : ['G']}})
{ "_id" : ObjectId("4fda21bb8a807d87a65aba37"), "ref" : [ "A", "T", "ATC", "G" ] }

Asta ai avut în minte?

O mare preocupare în proiectarea schemei este evitarea limitei de 16 MB. În timp ce puteți avea cât mai multe documente care pot fi adresate cu un spațiu de adrese pe 64 de biți, nu știu cum este posibil ca documentul dvs. să crească. Această restricție poate necesita scoaterea unor câmpuri în alte documente pe care le menționați.

0
adăugat