0

有没有一种方法可以在不建立索引的情况下为 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" 
     } 
)

但没有创建索引。

4

2 回答 2

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"}. 虽然创建索引是一种更优化的方式。

于 2018-03-19T10:59:49.583 回答
0

使用聚合框架来计算您的数据并根据您的需要对它们进行排序

于 2018-03-19T10:27:44.663 回答