3
當MongoDB的API直接交互,你可以這樣做全文搜索和排序結果的評分:
db.someCollection
.find({ $text: { $search: "some search phrase" } },
{score: { "$meta":"textScore" })
.sort({ score: { $meta:"textScore"} })
你如何翻譯這回環過濾器?
我曾經嘗試這樣做,它失敗:
{
"where":{
"$text" : { "search":"some search phrase" }
},
"fields": {
"score":{
"$meta":"textScore"
}
},
"orderby":"score ASC"
}
不幸的是,結果:
[
{},
{},
{}
]
當我看到MongoDB的曲線輸出,我發現,環回產生這個查詢:
"filter" : {
"$text" : {
"$search" : "some search phrase"
}
},
"sort" : {
"score" : 1
},
"projection" : {
"score" : 1
}
因此它將項目「分數」看作是一個普通字段而不是$ meta字段......這是排除所有其他字段的結果。
如何獲得迴環生成正確的查詢執行時應該看起來像這樣的:
"filter" : {
"$text" : {
"$search" : "some search phrase"
}
},
"sort" : {
"score" : {
"$meta" : "textScore"
}
},
"projection" : {
"score" : {
"$meta" : "textScore"
}
}
THX。