mongodb聚合(合僧)未定义函数
mongodb aggregation (co-monk) undefined function
以下代码似乎不起作用,我收到未定义的函数。使用基于 mongodb 本机节点模块的 mongoskin 的 co-monk。
文档:
{
"_id" : ObjectId("560c24b853b558856ef193a4"),
"name" : "ирина",
"pic" : "",
"language" : ObjectId("560c24b853b558856ef193a2"),
"cell" : 1,
"local" : {
"email" : "ирина@mail.com",
"password" : "12345"
},
"sessions" : [
{
"id" : ObjectId("560c24b853b558856ef193a5")
}
]
}
查询:
var sessionSeen =
yield users.aggregate([
{
$match: {
_id: myVarIdHere
}
},
{
$project: {
_id: 0,
data: {
$map: {
input: '$sessions',
as: 'sess',
in : '$$sess.seen'
}
}
}
}
]);
seen
应该 return null 因为它还没有被设置。
Monks 文档有问题。一位网络英雄写道,.col
访问本机 mongodb 驱动程序,我可以在那里做事。然而,我必须再次将它包装在一个承诺中,不过没有问题。
var sessionSeen =
yield new Promise(function (resolve, reject) {
users.col.aggregate([
{
$match: {
'_id': new ObjectID.createFromHexString(socket._id)
}
},
{
$project: {
_id: 0,
data: {
$map: {
input: '$sessions',
as: 'sess',
in : '$$sess.seen'
}
}
}
}
],
function (err, res) {
console.log('err ' + err);
console.log('res ' + JSON.stringify(res));
if (err === null)
resolve(res);
reject(err);
});
});
以下代码似乎不起作用,我收到未定义的函数。使用基于 mongodb 本机节点模块的 mongoskin 的 co-monk。
文档:
{
"_id" : ObjectId("560c24b853b558856ef193a4"),
"name" : "ирина",
"pic" : "",
"language" : ObjectId("560c24b853b558856ef193a2"),
"cell" : 1,
"local" : {
"email" : "ирина@mail.com",
"password" : "12345"
},
"sessions" : [
{
"id" : ObjectId("560c24b853b558856ef193a5")
}
]
}
查询:
var sessionSeen =
yield users.aggregate([
{
$match: {
_id: myVarIdHere
}
},
{
$project: {
_id: 0,
data: {
$map: {
input: '$sessions',
as: 'sess',
in : '$$sess.seen'
}
}
}
}
]);
seen
应该 return null 因为它还没有被设置。
Monks 文档有问题。一位网络英雄写道,.col
访问本机 mongodb 驱动程序,我可以在那里做事。然而,我必须再次将它包装在一个承诺中,不过没有问题。
var sessionSeen =
yield new Promise(function (resolve, reject) {
users.col.aggregate([
{
$match: {
'_id': new ObjectID.createFromHexString(socket._id)
}
},
{
$project: {
_id: 0,
data: {
$map: {
input: '$sessions',
as: 'sess',
in : '$$sess.seen'
}
}
}
}
],
function (err, res) {
console.log('err ' + err);
console.log('res ' + JSON.stringify(res));
if (err === null)
resolve(res);
reject(err);
});
});