MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Zapytanie MongoDB $in z tablicą wyrażeń regularnych elementu

Korzystanie z $in może być dość wydajny w przypadku małych tablic, ale nie tak dobrze w przypadku dużych list, ponieważ będzie przeskakiwać w indeksie, aby znaleźć pasujące dokumenty, lub przechodzić przez całą kolekcję, jeśli nie ma indeksu do użycia.

Oprócz używania wyrażenia $in w wyrażeniu regularnym, możesz użyć wzorca wyrażenia regularnego oddzielonego pionową kreską z listą słów kluczowych w następujący sposób:

Dokumenty testowe:

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" },
]);

Magia:

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

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

Wyniki

{ "_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. Jak wykonać surowe operacje mongodb w manguście?

  2. Jak wyeksportować kolekcję do CSV w MongoDB?

  3. Jak zmienić strukturę wyników map-reduce MongoDB?

  4. Zapytanie, aby uzyskać dane z ostatnich X minut za pomocą Mongodb

  5. Wyodrębniona agregacja MongoDB