Mongo DB स्वयं एक ही समय में पाठ और भू खोज का समर्थन नहीं करता है।इसे देखें
लेकिन आप क्वेरी को जोड़ सकते हैं और परिणाम प्राप्त कर सकते हैं
समाधान
const aggregate=YourCollection.aggregation()
aggregate.near({
near:coord,
includeLocs: "loc",
distanceField: "distance",
maxDistance: distance
});
aggregate.match({name:{$regex:keyword,$options: 'i'}})
aggregate.exec(function(err,yourDocuments){
//your smart code
})
-
var aggregate=YourCollection.aggregate(); var match= { latitude: { $lt: yourCurrentLatitude+maxDistance, $gt: yourCurrentLatitude-maxDistance }, longitude: { $lt: yourCurrentLongitude+maxDistance, $gt: yourCurrentLongitude-maxDistance }, {$text:{$search:keyword}} }; aggregate.match(match).exec(function(err,yourDocuments){//your smart code})
-
Mapreduce + ( टेक्स्ट सर्च या regex )
YourCollection.mapReduce(map, reduce, {out: {inline:1, query : yourFirstQuery}}, function(err, yourNewCollection) {
// Mapreduce returns the temporary collection with the results
collection.find(yourNewQuery, function(err, result) {
//your awsome code
});
});