MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB:Dokumente nach Tags abrufen

Beispielsammlung:

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

alle finden, die das Tag "blau" enthalten

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

finde alle markierten "blauen" und nur blaue

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

finden Sie alle markierten "blau" und "billig"

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

alle nicht "blau" finden

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

finde alle "blau" und "billig", aber nicht "rot" und nicht "groß"

in meiner mongo db nicht möglich. Ab mongodb 1.9.1 sollte so etwas funktionieren (nicht getestet):

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