我们需要根据MongoDB中的文档属性完成最近的搜索。
让我们举一个例子,MongoDB中有一个Car架构,信息将存储为类似于:
{
Make: "Hyundai",
Model: "Creta",
Title: "Hyundai Creta E 1.6 Petrol",
Description: "Compact SUV",
Feature: {
ABS: true,
EBD: true,
Speakers: 4,
Display: false
},
Specification: {
Length: "4270 mm",
Width: "1780 mm",
Height: "1630 mm",
Wheelbase: "2590 mm",
Doors: 5,
Seating: 5,
Displacement: "1591 cc"
},
Safety: {
Airbags: 2,
SeatBeltWarning: false
},
Maintenance: {
LastService: "21/06/2016",
WashingDone: true
}
}
需要根据以下标准提供搜索:
1. Make
2. Model
3. ABS
4. Seating
5. Displacement
6. Airbags
现在结果应包含3个或更多属性匹配的记录(完全匹配),并根据匹配的最大属性数排序。
使用MongoDB实现此功能的最佳方法是什么?
答案 0 :(得分:0)
您可以编写一些内容来为每个三元组字段生成文档,然后将它们与$or
放在一起,生成类似
{$or: [
{Make: "Hyundai", Model: "Creta", Feature.ABS: true},
{Make: "Hyundai", Model: "Creta", Specification.Seating: 5},
...
]}
排序可能需要sorting by textScore。