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

MongoDB:Získejte dokumenty podle značek

příklad kolekce:

db.tags.insert({"tags":["red", "tall", "cheap"]});
db.tags.insert({"tags":["blue", "tall", "expensive"]});
db.tags.insert({"tags":["blue", "little", "cheap"]}); 

najít všechny, které obsahují značku "modrá"

db.tags.find({tags: { $elemMatch: { $eq: "blue" } }})

najít všechny označené jako "modré" a pouze modré

db.tags.find({tags: "blue"})

najít všechny označené jako "modré" a "levné"

db.tags.find({ tags: { $all: ["cheap", "blue"] } } )

najít vše, co není "modré"

db.tags.find({tags: { $ne: "blue" } })

najít všechny "modré" a "levné", ale ne "červené" a ne "vysoké"

není možné v mém mongo db. Od mongodb 1.9.1 by něco takového mělo fungovat, i když (netestováno):

db.tags.find({ $and: [ {tags: { $all: ["blue", "cheap"] } }, { tags: { $nin: ["red", "tall"] } } ] })


  1. Vraťte pouze odpovídající prvky dílčího dokumentu v rámci vnořeného pole

  2. Jaké jsou konvence pojmenování pro MongoDB?

  3. Dávkové vložení MongoDB a NodeJs

  4. Jak streamovat výsledky dotazů MongoDB s nodejs?