sql >> Database >  >> NoSQL >> MongoDB

MongoDB:documenten ophalen met tags

voorbeeldcollectie:

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

vind alles met de tag "blauw"

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

vind alle getagde "blauw" en alleen blauw

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

vind alle tags "blauw" en "goedkoop"

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

vind alle niet "blauw"

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

vind alle "blauw" en "goedkoop" maar niet "rood" en niet "lang"

niet mogelijk in mijn mongo db. Vanaf mongodb 1.9.1 zou zoiets echter moeten werken (niet getest):

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


  1. Hoe voer je een NOT IN-query uit in mongodb zonder $nin te gebruiken?

  2. MongoDB georuimtelijke query met $not

  3. Wat zijn de onderliggende verschillen tussen select, epoll, kqueue en evport?

  4. Een MongoDB-weergave converteren naar een verzameling