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

Търсене на стойност на всяко поле в MongoDB без изрично именуване

за да извършите текстово търсене във всички полета, първо трябва да създадете текстов индекс за всички полета.

както се посочва в документацията на mongodb, „За да позволите търсене на текст във всички полета със съдържание на низ, използвайте спецификатора на заместващи знаци ($**), за да индексирате всички полета, които съдържат низово съдържание.“

ако работите в обвивката mongo (която изпълнявате от командния ред, като извикате 'mongo'), тогава можете да го направите с тази команда, където 'колекция' е името на колекцията в базата данни, която искате да използвате.

db.collection.createIndex({ "$**": "text" },{ name: "TextIndex" })

вторият обект, т.е. {name:"TextIndex"} , е по избор... всъщност не е необходимо да давате име на индекса, тъй като може да има само един текстов индекс на колекция (в даден момент... можете да пуснете индекси и да създадете нови, ако искате).

след като създадете текстов индекс за всички полета, можете да направите просто текстово търсене със следния обект на заявка:{ $text : { $search: <your string> } }

така че, ако пишете функция на javascript, можете да направите нещо като:

var cursor = db.collection(<collection_name>).find({ $text: { $search: <your string> } });

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да заявя mongodb с „like“ с помощта на java api?

  2. MongoDB като съхранение на файлове

  3. Запазване на numpy масив в mongodb

  4. C# + MongoDB - ObjectId без използване на MongoDB DataTypes/Attributes

  5. Пуснете елементи в монго масив чрез mongoose