MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB:ottieni documenti per tag

esempio di raccolta:

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

trova tutto ciò che include il tag "blu"

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

trova tutti taggati "blu" e solo blu

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

trova tutti i tag "blu" e "economici"

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

trova tutto non "blu"

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

trova tutto "blu" e "economico" ma non "rosso" e non "alto"

non è possibile nel mio mongo db. Da mongodb 1.9.1 in poi qualcosa del genere dovrebbe funzionare, anche se (non testato):

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