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

Заявка на MongoDB $in с масив от елемент с регулярни изрази

Използване на $in може да бъде доста ефективно с малки масиви, но не толкова добре с огромни списъци, тъй като ще прескача в индекса, за да намери съвпадащите документи, или ще премине през цялата колекция, ако няма индекс за използване.

Освен да използвате $in с регулярния израз, можете да използвате разделен с вертикални черти шаблон на регулярни изрази със списъка с ключови думи като този:

Тестови документи:

db.papertest.insert([
    { category: "ad bd cd" },
    { category: "dd ed fd" },
    { category: "gd hd id" },
    { category: "jd kd ld" },
    { category: "md nd od" },
    { category: "pd qd rd" },
    { category: "sd td ud" },
    { category: "vd wd xd yd zd" },
]);

Магията:

var keywords = ["xd", "sd", "ad"],
    regex = keywords.join("|");

db.papertest.find({
    "category": {
        "$regex": regex, 
        "$options": "i"
    } 
});

Резултатите

{ "_id" : ObjectId("56bb6f171bb4f693057c0ba4"), "category" : "ad bd cd" }
{ "_id" : ObjectId("56bb6f171bb4f693057c0baa"), "category" : "sd td ud" }
{ "_id" : ObjectId("56bb6f171bb4f693057c0bab"), "category" : "vd wd xd yd zd" }


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. E:Не може да се намери пакет mongodb-org

  2. MongoDB count команда

  3. brew install mongodb грешка:Страхлив отказ да `sudo brew install' Mac OSX Lion

  4. MongoDB $substrBytes

  5. MongoDB forEach()