【发布时间】:2019-02-03 11:07:22
【问题描述】:
我最近在我的开发环境中更新了 mongo 以利用新功能(Mongod 1.4 --> 4.0)。现在我所有现有的聚合查询都返回一个错误:
{ [MongoError: 'cursor' 选项是必需的,聚合除外 使用解释参数] name: 'MongoError', ok: 0, errmsg: '\'cursor\' 选项是必需的,除了与 解释参数',代码:9,代码名称:'FailedToParse' }
我知道我应该能够在管道定义中添加一个“cursor()”元素(我的预期返回数据很小),但我似乎无法正确使用语法,或者在网上找到一个很好的例子节点/猫鼬语法。我最好的猜测是按如下方式添加光标:
================================================ ======
ParticipantActivityLog.aggregate([
{ $match: {
"$and": [
{logDate :{$gte : new Date(postDataObj.strtDt),$lt : new Date(postDataObj.endDt)}},
{invitationId : {$in: postDataObj.invIds}}
]
}
},
{ "$sort": {logDate: 1 }},
{ $group: {
_id: {
"invitationId":'$invitationId',
"milestoneId":'$milestoneId',
"activityId": '$activityId'
},
invitationId : { $first : '$invitationId'},
milestoneId : { $first : '$milestoneId'},
activityId : { $first : '$activityId'},
activityName : { $first : '$activityName'},
logDate: {$first:'$logDate'},
frequency1 : {$first: '$frequency1'},
count: { $sum: 1 }
}} ],
{$cursor:{}}
).exec(function(err, result){
if(err){
console.log(err);
return;
}
return res.jsonp(result); });
================================================ ======
这会引发以下错误...
错误:参数必须是聚合管道运算符
...所以我假设我添加的光标元素的语法以某种方式错误?
【问题讨论】:
-
更新你的猫鼬版本,如上面所说的欺骗
-
感谢您的回复!我之前做过'npm update mongoose',但回去又做了一次,意识到我得到的响应是:trunk\node_modules>npm update mongoose mongoose@3.8.40 mongoose └── ms@0.1.0 I根据文档应该会达到 5.x 版本,所以我会继续深入研究。
标签: mongodb mongoose aggregation-framework