在节点js中将循环结构转换为JSON

时间:2016-09-19 10:36:19

标签: node.js mongodb express

我有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);
  });

};

1 个答案:

答案 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/