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

Решение за съхранение на данни за търсене на тагове

Mongodb може да се справи с това, което искате, ако сте съхранили вашите обекти по този начин

{ score:2131, attributes: ["attr1", "attr2", "attr3"], ... }

Тогава следната заявка ще съответства на всички елементи, които имат att1 и attr2

c = db.mycol.find({ attributes: { $all: [ "attr1", "attr2" ] } })

но това няма да съответства

c = db.mycol.find({ attributes: { $all: [ "attr1", "attr4" ] } })

заявката връща курсор, ако искате този курсор да бъде сортиран, тогава просто добавете параметрите за сортиране към заявката по следния начин

c = db.mycol.find({ attributes: { $all: [ "attr1", "attr2" ] }}).sort({score:1})

Разгледайте Разширени заявки за да видите какво е възможно.

Подходящите индекси могат да бъдат настроени както следва

db.mycol.ensureIndex({attributes:1, score:1})

И можете да получите информация за производителността чрез

db.mycol.find({ attributes: { $all: [ "attr1" ] }}).explain()

Mongo обяснява колко обекта са били сканирани, колко време е отнела операцията и различни други статистики.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $или заявка

  2. Mongoose:Как да актуализирам съществуващ елемент в масив?

  3. Кратък удобен за потребителя ID за mongo

  4. Създайте база данни в MongoDB

  5. конвертиране на база данни от mysql в mongoDb