在 mongodb 中搜索权重



有没有办法在不索引的情况下将权重年龄添加到Mongo-db中的特定字段?

文档格式:

{
    "_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"
}

在类似上述的文档中,查找查询应按以下顺序基于优先级工作:

  1. 项目名称
  2. 价格(最低(
  3. 上架日期(最新(

带有"项目 A"的查找查询应该以首先返回第二个条目的方式工作,因为它是价格较低的条目,尽管第一个条目是最新的。有没有办法在不索引的情况下向搜索查询中的字段添加权重(重要性(。

我正在寻找像

db.blog.createIndex( 
    { 
        content: "text", 
        keywords: "text", 
        about: "text" 
    }, 
    { 
        weights: { 
            content: 10, 
            keywords: 5 
        }, 
        name: "TextIndex" 
     } 
)

但不创建索引。

使用聚合框架来计算数据并

根据需要对其进行排序

使用以下命令:

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"} 类似的语法来完成。尽管创建索引是一种更优化的方法。

相关内容

  • 没有找到相关文章

最新更新