MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB:вземете документи по тагове

примерна колекция:

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

намерете всички, които включват маркера "синьо"

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

намери всички маркирани със „сини“ и само сини

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

намерете всички маркирани „сини“ и „евтини“

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

намери всички, които не са „сини“

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

намери всички „сини“ и „евтини“, но не „червени“ и не „високи“

не е възможно в моята mongo db. От mongodb 1.9.1 на нещо подобно обаче трябва да работи (не е тествано):

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoRepository findByCreatedAtBetween не връща точни резултати

  2. Трети аргумент при създаване на модел в MongooseJS

  3. Spring Mongo DB @DBREF

  4. Предавайте голям масив към дъщерен процес на възел

  5. Комбинирайте два израза $or