Javascript 未知的顶级运算符:$orderby
我们在VPS上的服务器上运行+应用程序 我们的一个mongoose查询与以下运算符有冲突:Javascript 未知的顶级运算符:$orderby,javascript,node.js,mongodb,mongoose,full-text-indexing,Javascript,Node.js,Mongodb,Mongoose,Full Text Indexing,我们在VPS上的服务器上运行+应用程序 我们的一个mongoose查询与以下运算符有冲突: 看起来是这样的: db.sampleCollection.find({ $text: { $search: userInput }, $lte: { expired: (new Date()).addDays(30) }, $limit: 9, $orderby: { postedAt: -1 } }) 这会引发此错误: 未知的顶级运算符:$
db.sampleCollection.find({
$text: {
$search: userInput
},
$lte: {
expired: (new Date()).addDays(30)
},
$limit: 9,
$orderby: {
postedAt: -1
}
})
这会引发此错误:
未知的顶级运算符:$orderby
已经考虑的解决办法:
- ,但是我们在查询中没有使用该运算符
- ,但是我们需要它来查找函数
- ,但我们需要非数组索引的解决方案
- 我们不是混合运算符
需要关于如何修复此问题的输入。检查您的mongodb版本orderby自v3.2以来已被弃用
$orderby Deprecated in the mongo Shell since v3.2
In the mongo shell,use cursor.sort() instead.
不再支持like$orderBy
:
从v3.2开始,mongo shell中不推荐使用查询“meta”运算符。在mongo shell中,改用游标方法
按照文档的建议,使用和limit
等光标方法:
db.sampleCollection.find({
$text: {
$search: userInput
},
$lte: {
expired: (new Date()).addDays(30)
}
})
.sort({
postedAt: -1
})
.limit(9);
@RolandStarke此查询无论如何都没有在mongo shell上运行,我们的是MongoDB服务器版本:
3.4.3
您是否尝试了$sort
而不是$orderby
?看看这个解决方案:它可能会对您有所帮助。@PierreR-A感谢您的输入,我们将很快尝试实现它,并返回使用mongodb
库从javascript执行查询怎么样?
db.sampleCollection.find({
$text: {
$search: userInput
},
$lte: {
expired: (new Date()).addDays(30)
}
})
.sort({
postedAt: -1
})
.limit(9);