【发布时间】:2019-06-13 06:52:27
【问题描述】:
在将数据传递给 Mongo 之前,我正在尝试在后端构建一个 mongo 排序查询。代码中req.query.so为排序类型(如name或id),req.query.sd为排序方向(1为升序,-1为降序)
这是引发错误的代码:
exports.indexWithStatus = function (req, res) {
// sort
let sort = null
if (req.query.so && req.query.sd) {
sort = `{${req.query.so}: ${req.query.sd}}` // not being constructed
correctly
}
我得到的错误是:
name: 'MongoError',
message:
'Failed to parse: sort: "{name: 1}". \'sort\' field must be of BSON type object.',
ok: 0,
errmsg:
'Failed to parse: sort: "{name: 1}". \'sort\' field must be of BSON type
object.',
code: 9,
codeName: 'FailedToParse' }
我对 Mongo 不是很熟悉,我在网上找到的关于这个错误的大部分问题都来自试图将数组而不是对象传递给 .sort() 的人。
我认为问题在于通过使用替换语法 ${req.query.so} 我正在创建一个字符串,而不是一个对象,但我不确定这一点。请告诉我如何解决这个问题。
【问题讨论】:
标签: javascript mongodb bson