0
我得到“折旧”警告后,我刚刚将我的mongodb驱动程序从1.4升级到2.2.16。Mongodb聚合框架使用mongdb驱动2.2.16在结果集中给出“undefined”
这个问题似乎与如何聚合。如果我删除$匹配,它会起作用。与$匹配的东西给我结果集中的“未定义”。
这是我的聚合函数。
Doc.aggregate(
{$match: searchCriteria}, //Removing this gives result
{$project: { title: 1, description:1, createdOn:1, extension:1, workflows: 1, enableWorkflow: 1, numPages:1, userid:1, metadata:1, docGalleryId:1, tags:1, status:1, galleryThumbUrl : { $slice: ["$pages.galleryThumbUrl", 1 ] } } },
{$unwind: '$galleryThumbUrl'},
{$sort: {createdOn: -1}},
{$skip: skip},
{$limit: items},
function (err, result) {
console.log(result); //This gives Undefined
Doc.populate(result, {path: 'userid', select: 'firstName, lastName, userEmail'}, function (err, docCol) {
console.log(err, docCol);
console.log('items', items);
callback({
docs: docCol,
showNext: showNext,
page: page,
items: items
});
});
}
);
searchCriteria是物体(未字符串)。这里是什么样子
{"$and":[{"status":{"$ne":"deleted"}},{"$or":[{"userid":{"$in":["56bf7f25f59d1ff711000005"]}},{"collaboration":{"$elemMatch":{"userid":"56bf7f25f59d1ff711000005"}}}]}]}
正如我刚才所说,这用来工作正常,但不会再有更新2.2.16。我很感谢你的帮助。
创建'searchCriteria'对象的代码在哪里? – chridam
构建searchCriteria的代码就在上面。它开始于var searchCriteria = {}; searchCriteria。$和= [];并根据最终通过的参数建立标准,以达到我上面发布的内容。 – bobsov534
你可以请[编辑]并包括它的问题? – chridam