我有5条记录,当我试图让那些我面临以下错误时,有人可以帮助我。谢谢
我的nodejs,
exports.searchlistbyfirstname = function (req, res) {
var params = req.params;
var record= db.collection('profile');
record.find( { $text: { $search: params.id} }, (err, result) => {
if (err){ return console.log(err)
}
if(result){
response = {status:'success',data:result};
} else{
response = {status:'fail'};
}
res.send(response);
});
};
答案 0 :(得分:0)
$ text和$ search在您想要搜索集合中的多个字段时非常有用,就像您要搜索可以位于多个字段(如firstname,lastname等)中的字符串一样,在这种情况下,您可以创建对这些键的索引作为以下方式: 架构级别:
new Schema({
firstname:{type: String, index: true},
firstname:{type: String, index: true}
.....
});
使用ensureIndex:
profile.collection.ensureIndex({firstname:"text",lastname:"text" ....},default_language:"none"},function(err,result){ });
使用$ text和$ search,您可以搜索其他语言,例如:
你有两条记录:{ "_id" : 7, "subject" : "coffee and cream", "author" : "efg", "views" : 10 }
{ "_id" : 1, "subject" : "coffee", "author" : "xyz", "views" : 50 }
并且您想要用西班牙语搜索,然后您可以通过以下方式进行搜索:
db.articles.find(
{ $text: { $search: "leche", $language: "es" } }
)
查询返回以下文档:
{ "_id" : 5, "subject" : "Café Con Leche", "author" : "abc", "views" : 200 }
{ "_id" : 8, "subject" : "Cafe con Leche", "author" : "xyz", "views" : 10 }
有关详细信息,请参阅此链接: https://docs.mongodb.com/manual/reference/operator/query/text/