您可以使用匹配的 textScore 对结果集进行排序:
db.products
.find({ $text : { $search : "Sun moon Tapestry" } }, { score: { $meta: 'textScore' } })
.sort({score:{$meta: "textScore"}})
由于您有 2 个文本索引,您还可以为 和 定义权name
重category.name
。
https://docs.mongodb.com/v3.2/tutorial/control-results-of-text-search/
PS:没有任何相关的angularjs
编辑:如果您使用 Mongoose,查询保持不变,您必须查询您的模型
YourProduct
.find({ $text : { $search : "Sun moon Tapestry" } }, { score: { $meta: 'textScore' } })
.sort({score:{$meta: "textScore"}})
.exec(function (err, data) {
if (err)
res.json(err);
else {
res.json(data)
}
});
对于角度集成,您可以创建一个使用 $http https://docs.angularjs.org/api/ng/service/$http的服务并进行 ajax 调用。