小编FRi*_*zal的帖子

Mongo:分组、推送和排序

我有一个 mongodb 收集数据,如下所示;我想按 EmployeedID(即 0001)分组,然后排序(按年龄)

{
"_id" : ObjectId("54d0512191a4da7736e9db43"),
"EmployeeID" : "0001",
"Speciality" : "xxx",
"Code" : "P",
"Age" : 8
}

/* 1 */
{
"_id" : ObjectId("54d0512191a4da7736e9db44"),
"EmployeeID" : "0002",
"Speciality" : "yyyyy",
"Code" : "P",
"Age" : 6
 }

/* 2 */
{
"_id" : ObjectId("54d0512191a4da7736e9db45"),
"EmployeeID" : "0001",
"Speciality" : "zzz",
 "Code" : "P",
 "Age" : 5
 }
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用以下方式进行分组。

collection.aggregate([
{$match:{"EmployeeId":0001}},
{$group:{"_id":"$EmployeeID",
        "speciality":{$push:"$Speciality"},
        "Code":{$push:"$Code"},
        "Age":{$push:"$Age"}}}
 ])
Run Code Online (Sandbox Code Playgroud)

但是我怎么能在这里使用 $sort 呢?所以我的结果可能如下所示;

[{ "EmployeeID" : "0001",
"speciality" : [ …
Run Code Online (Sandbox Code Playgroud)

mongodb node.js aggregation-framework

3
推荐指数
1
解决办法
5229
查看次数

与mongo db的异步瀑布

可能只是异步的基本概念.我想检查一下我们如何将数组变量从mongo result(docs)传递给第二个函数.在下面的代码中,第二个console.log不提供任何输出.

// Retrieve
var db = require('monk')('localhost/db');
var async = require('async');

console.log('start');

async.waterfall([

    function(callback) {
        var test = db.get('test');
        test.find({}, function(err, docs) {
            console.log(docs);  //OUTPUT OK
            callback(docs);  

        });

    },
    function(docs, callback) {
        console.log(docs);  //NO OUTPUT
    }
])
Run Code Online (Sandbox Code Playgroud)

asynchronous mongodb node.js monk

2
推荐指数
1
解决办法
1664
查看次数