sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB:hämta dokument med taggar

exempelsamling:

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

hitta alla som innehåller taggen "blå"

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

hitta alla taggade "blå" och bara blå

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

hitta alla taggade "blå" och "billiga"

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

hitta alla som inte är "blå"

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

hitta alla "blå" och "billiga" men inte "röda" och inte "höga"

inte möjligt i min mongo db. Från mongodb 1.9.1 på något sådant här borde dock fungera (ej testat):

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


  1. Kedjetidsbaserad sorterings- och gränsproblem

  2. mongodb-fel vid validering av inställningar:endast ett positionsargument är tillåtet

  3. Jämföra distributionsmönster för MongoDB

  4. Hur kör man MongoDB native query (JSON) med endast mongo-java-drivrutin?