Yul*_*ale 5 mongodb mongodb-query
如何解决:使用 MongoDB Atlas 时出现“MongoError: $where is not allowed in this atlas tier”的问题?
这是我的代码:
async function getEventsTakingPlace(){
const getEventsTakingPlace = await event.find({$where: function() {
return ((this.eventTime < new Date()) && (new Date(this.eventTime).getTime()+ 100*60000 > new Date().getTime() ) ) }},
function(err, events){
if(err){
return err;
}else {
return events;
}
});
return getEventsTakingPlace
};
Run Code Online (Sandbox Code Playgroud)
当我使用本地 mongoDB 实例时,它可以工作,但是一旦我开始使用 mongoAtlas,我就会收到错误消息:此地图集层中不允许使用 $where。我该如何解决这个问题?
虽然$where
您正在使用的 Atlas 层可能不支持它,但好消息是您不需要将它用于此查询。
相反,使用如下查询:
let now = new Date();
let min = new Date();
min.setTime(now.getTime() - 100*60000);
const events = await event.find({eventTime: {$gt: min, $lt: now}});
Run Code Online (Sandbox Code Playgroud)
一般来说,您只想将$where
其作为最后的手段,因为它效率不高。
我刚刚被告知免费套餐 (M0)、M2 和 M5 实例有一些限制和命令限制,包括用于分析的指标有限。因此我必须升级以获得更多功能......
归档时间: |
|
查看次数: |
9089 次 |
最近记录: |