【发布时间】:2015-03-12 20:41:44
【问题描述】:
我的 MongoDB 中有一个字段,当我查询数据库时需要生成该字段。它是我数据库中其他一些字段的哈希值。我希望在数据库中动态生成该字段,因为这提供了两个好处:
- 如果派生字段所依赖的字段之一被更新,那么我也不必重新更新哈希
- 我不必在我的服务器上计算哈希
例如: 假设您在汽车表中有 5 个字段,汽车名称、汽车颜色、汽车购买日期、汽车品牌和汽车哈希。
我希望能够仅通过汽车名称和汽车品牌来判断两辆汽车是否相等,而不是汽车颜色。我希望在数据库上完成此操作,这样我的 Web 服务器就不必遍历所有记录并计算汽车哈希。为此,我希望在数据库中计算汽车哈希(哈希只是将汽车名称与汽车品牌连接起来的哈希)。我不想静态定义它,因为每当有人更改汽车名称时,我也必须更改汽车哈希。
我已经尝试过搜索,但我无法在 MongoDB 中找到执行此操作的方法。如果有人有任何建议,将不胜感激。
编辑:这里是数据库中的三个示例记录:
{ "id" = 1, "car_name": "LX200", "car_brand": "Honda", "car_colour": "Red", "car_purchased_on": "12/01/14" }
{ "id" = 2, "car_name": "Fusion", "car_brand": "Ford", "car_colour": "Blue", "car_purchased_on": "01/01/09" }
{ "id" = 3, "car_name": "LX200", "car_brand": "Honda", "car_colour": "Green", "car_purchased_on": "25/09/93" }
现在我想要一个查询来获取汽车列表,该列表按基于汽车的哈希值的最新汽车分组。这类似于:hash(car_name + car_brand)。
所以我的查询将返回两条记录:
{ "id" = 1, "car_name": "LX200", "car_brand": "Honda", "car_colour": "Red", "car_purchased_on": "12/01/14" }
{ "id" = 2, "car_name": "Fusion", "car_brand": "Ford", "car_colour": "Blue", "car_purchased_on": "01/01/09" }
因为 id = 3 的汽车与 id = 1 的汽车具有相同的哈希值。
【问题讨论】:
-
如果您只是展示您的文档而不是制作几个实际上并没有解释任何内容的段落,这将是一个可以回答的问题。编辑您的问题以显示示例文档和预期结果。
-
我已经编辑了我的问题以包含一个场景。
标签: mongodb mapreduce mongodb-query aggregation-framework