有没有办法可以在没有索引的情况下为Mongo-db中的特定字段添加weight-age?
文件格式:
{
"_id" : "55b3551164518e48",
"item" : "Item A",
"price": 400,
"added_date": "2015-07-22",
"seller": "Seller A"
},{
"_id" : "55b3551164518e49",
"item" : "Item A",
"price": 200,
"added_date":"2015-06-21",
"seller": "Seller B"
}
在如上所述的文档中,查找查询应按以下顺序基于优先级工作:
使用"项目A"查找查询应该首先返回第二个条目,因为它是价格较低的条目,尽管第一个条目是最新的。有没有办法在没有索引的情况下在搜索查询中为字段添加权重(重要性)。
我正在寻找像
中的重量字段搜索db.blog.createIndex(
{
content: "text",
keywords: "text",
about: "text"
},
{
weights: {
content: 10,
keywords: 5
},
name: "TextIndex"
}
)
但没有创建索引。
答案 0 :(得分:0)
使用聚合框架来计算您的数据并根据您的需求对其进行排序
答案 1 :(得分:0)
使用以下内容:
db.example.aggregate([
$sort: {item: 1, price: -1, added_date: 1},
$group: {_id: "$item", price: {$first: "$price"}, added_date: {$first: "$added_date"}}
]);
分组后所需的字段需要单独添加,并且可以使用与price: {$first: "$price"}
类似的语法来完成。虽然创建索引是一种更优化的方式。