2017-06-27 12 views
0

MongoDBのドキュメントプロパティに基づいて最も近い検索を実行する必要があります。MongoDBのドキュメントプロパティに基づいた弾性/最近接検索

情報は、のようなものとして保存されます、MongoDBの中に車のスキーマがある、の例を見てみましょう:

{ 
    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でこれを実装する最も良い方法は何ですか?

+1

これまでに何を試みましたか? [mcve]を入力してください。 –

答えて

0

あなたは

{$or: [ 
    {Make: "Hyundai", Model: "Creta", Feature.ABS: true}, 
    {Make: "Hyundai", Model: "Creta", Specification.Seating: 5}, 
    ... 
]} 

ソートはおそらくsorting by textScoreを必要とするようなものを生産、フィールドの各トリプレットのためのドキュメントを生成するために何かを書き、その後、$orと一緒にそれらを置くことができます。

関連する問題