我正在尝试在 MongoKitten 中创建以下 mongo 语句,这是一个快速框架。
db.pages.find( {$and: [{$text: {$search: "ebay"}} , {"lang" : "en"} ] }, {score: {$meta: "textScore"}}).sort({score:{$meta:"textScore"}})
在 swift 中,我有以下内容,但是我无法按生成的字段 Score
对其进行排序let query: Query = [
"$text": ["$search": "ebay" ],
"lang" : ["$eq": "en"],
]
let projection: Projection = [
"_id": .excluded,
"url": "url",
"$score": ["$meta" : "textScore"]
]
let sort : Sort = [
"score": .descending
]
let matchingEntities: CollectionSlice<Document> = try pages.find(query, sortedBy: sort, projecting: projection)
有人做过这样的事吗?
最佳答案
尝试使用自定义 SortOrder
let query: Query = [
"$text": ["$search": "ebay" ],
"lang" : ["$eq": "en"]
]
let projection: Projection = [
"_id": .excluded,
"url": "url",
"score": ["$meta" : "textScore"]
]
let sort : Sort = [
"score": .custom(["$meta" : "textScore"])
]
let matchingEntities: CollectionSlice<Document> = try pages.find(query, sortedBy: sort, projecting: projection)
关于swift - MongoKitten : Sorting by a generated field,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48855494/