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

Как да намеря прилика в документно поле MongoDB?

Ако трябва да изчислите сходството на текста на about поле, един от начините да постигнете това е да използвате текстов индекс .

Например (в mongo shell), ако създадете текстов индекс на about поле:

db.collection.createIndex({about: 'text'})

можете да изпълните заявка като (пример, взет от https://docs.mongodb.com/manual/reference/operator/query/text/#sort-by-text-search-score ):

db.collection.find({$text: {$search: 'similarity in comparison'}}, {score: {$meta: 'textScore'}}).sort({score: {$meta: 'textScore'}})

С вашите примерни документи заявката трябва да върне нещо като:

{
  "_id": "foobar1",
  "about": "similarity in comparison",
  "score": 1.5
}
{
  "_id": "foobar2",
  "about": "perfect similarity in comparison",
  "score": 1.3333333333333333
}
{
  "_id": "foobar3",
  "about": "partial similarity",
  "score": 0.75
}

които са сортирани по низходящ резултат за сходство. Моля, имайте предвид, че за разлика от вашия примерен резултат, документ foobar4 не се връща, защото нито една от заявените думи не присъства в foobar4 .

Текстовите индекси се считат за специален тип индекси в MongoDB и следователно идват с някои специфични правила за тяхното използване. За повече подробности, моля, вижте:




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Използване на $unwind и $text в рамка за агрегиране mongodb

  2. Как да конфигурирате източник на данни StrongLoop LoopBack MongoDB за внедряване в Heroku

  3. Как да съхранявам крипто pbkdf2 в mongoDB?

  4. Грешка на MongoDB, тъй като съветникът за настройка приключи преждевременно, докато го инсталирате на Windows 10

  5. изберете 2 полета и върнете сортиран масив с техните отделни стойности