sql >> Databáze >  >> NoSQL >> MongoDB

Jak z výsledků vyhledávání vyloučit dokumenty s poli, která nejsou přítomna v dotazu?

Musím přiznat, že neznám žádnou normální metodu dotazování, kterou bych tento problém vyřešil. Znám pouze jeden způsob, a to použití porovnání objektů MongoDBs. Chcete-li to provést, změnili byste svou strukturu na něco ve smyslu:

{
    ps: [a,b]
}

nebo:

{
    ps: {p1:a,p2:b}
}

A pak byste se zeptali jako:

db.col.find({ p: [a,b] })

nebo:

db.col.find({ p: {p1:a, p2:b} })

S tím je ale jeden bezprostřední problém. Závisí na pořadí klíčů, což znamená, že pokud váš a a b jsou ve skutečnosti naopak v jiném dokumentu, který se nebude shodovat. Pokud tak učiníte, budete se muset ujistit, že vám při ukládání záleží na pořádku.

Doufám, že to pomůže,



  1. JSON serializující Mongodb

  2. Získání nejvyšší hodnoty sloupce v MongoDB

  3. Jak na to:Použijte rozhraní HBase Thrift, Část 2:Vkládání/získávání řádků

  4. Jak se *správně* zeptáte Redis z Tornado?