Node.js 创建架构并检索mongoose嵌套对象数组值

Node.js 创建架构并检索mongoose嵌套对象数组值,node.js,mongoose,Node.js,Mongoose,实际上,我的目标是找出每个类别(例如在解决方案中)花费的总时间 或计费类别,请给我一个解决方案,我是新的猫鼬,所以我 不知道实现这一点的正确方法(是否可以使用MapandReduce方法?) 提前谢谢 userSchema = mongoose.Schema({ username: { type: String, required: true }, type: String,

实际上,我的目标是找出每个类别(例如在解决方案中)花费的总时间

或计费类别,请给我一个解决方案,我是新的猫鼬,所以我

不知道实现这一点的正确方法(是否可以使用MapandReduce方法?)

提前谢谢

    userSchema = mongoose.Schema({
        username: {
            type: String,
            required: true
        },
        type: String,
        timesheet: {
            created: {
                type: Date
            },
            categories: [{
                catname: String,
                cusname: String,
                hours: Number
            }]

        }
    });
    var User = mongoose.model('User', userSchema);

    module.exports = function (app) {

        var usr = {
            username: "Ardrew",
            type: "Billing",
            timesheet: {
                created: new Date('2014-06-04'),
                categories: [{
                    catname: "Solution",
                    cusname: "IBM",
                    hours: 8
                }, {
                    catname: "Solution",
                    cusname: "AT&T",
                    hours: 4
                }, {
                    catname: "Sales",
                    cusname: "AT&T",
                    hours: 4
                }]
            }
        }

        var user = new User(usr);      

        user.save(function (err, user) {


        });


        /*  User.find({"timesheet.categories.catname":"Solution"},function(err,result){
                   console.log(result)
          }*/
在集合中查询与第一个参数中提供的条件匹配的文档。例如:

User.find({type: 'Sales'}, function (err, docs) { })
此示例查询将查找
type
Sales
的所有文档。回调函数接收一个可以迭代的游标

但在您的情况下,甚至不需要调用
find
。返回回调中的文档,因此您可以访问如下字段:

user.save(function(err, user) {
   console.log(user.timesheet.categories);
});

当我试图安慰结果时,它是未定义的,这就是问题所在。如何使用find方法获取类别的值。console.log(user.timesheet.categories);-->undefined@user3737613这段代码应该可以工作,您真的不需要使用find。能否尝试添加
console.log(err)
以检查是否存在错误?另外,
user
在回调中的值是多少?您还可以添加
控制台.log(用户)
?它可以工作!谢谢你宝贵的时间。我需要计算销售类别花费的总小时数。请帮我解决这个问题@用户3737613请提出一个新问题,很难在评论中回答。当然,我会提出一个新问题