我是MongoDB的完全开端人员,请原谅,如果这是微不足道的。
我有一组标签(字符串)和一个将char以其给定字体的宽度映射的函数。
我想检索按宽度排序的标签(函数的结果)。 有人可以告诉我是否可能,如果可以,怎么做?
由于
答案 0 :(得分:0)
这是不可能的。
另一方面,面向文档的设计不是应用程序无关的。这意味着您可以根据要访问数据的方式构建数据。在这种情况下,您可以将文本宽度索引为该字段的字段广告排序。任何文本更改都意味着必须重新计算文本宽度。
这不是一件坏事,因为你会优化(希望很多)读操作,并且在(希望很少)写操作期间会有一些代码和性能损失。
答案 1 :(得分:0)
通常,可以使用可用服务器端函数的组合从现有字段派生某些值,然后按该值排序。这是一个例子:
给出一份文件
{
"input" : 1
}
你可以这样做:
db.collection.aggregate({
$addFields: {
"result": {
$sum: [ "$input", 42 ] // function that calculates "result = input + 42"
}
}
}, {
$sort: {
"result": 1 // sort by calculated field in ascending order
}
})
您可以尝试使用MongoDB函数编写映射函数。但是,我不建议这样做,因为您要在数据库调用中对业务逻辑的某些部分进行建模,而这实际上不应该完成。