Node.js Mongoose$push的问题

Node.js Mongoose$push的问题,node.js,mongodb,mongoose,npm,Node.js,Mongodb,Mongoose,Npm,我真的需要第二双眼睛。我正在使用Mongoose npm在我的MongoDB中创建一个新条目。然后我在异步npm的几个函数中使用了这个新条目 我遇到的问题是,我得到的是前三个控制台日志,“hitter”、“create”和“req.body.campaign_id”,但没有超过这三个日志。我认为这与我在第一次findByIdAndUpdate中的$push有关。请参阅下面我的代码和模式 代码!请参阅异步并行“活动”功能 Bid.create(req.body, function(err, bid

我真的需要第二双眼睛。我正在使用Mongoose npm在我的MongoDB中创建一个新条目。然后我在异步npm的几个函数中使用了这个新条目

我遇到的问题是,我得到的是前三个控制台日志,“hitter”、“create”和“req.body.campaign_id”,但没有超过这三个日志。我认为这与我在第一次findByIdAndUpdate中的$push有关。请参阅下面我的代码和模式

代码!请参阅异步并行“活动”功能

Bid.create(req.body, function(err, bid){
        console.log('create')
        async.parallel({
            campaign: function(done) {
                console.log(req.body.campaign_id)
                Camapaign.findByIdAndUpdate(req.body.campaign_id, {
                    $push: { bids: bid._id }
                }, {
                    safe: true,
                    upsert: true
                }, function(err, campaign){
                    console.log('camp', 2)
                    if(err) {
                        console.log(err)
                        done(err)
                    } else {
                        done(null, campaign)
                    }
                });
            },
            user: function(done) {
                console.log('user', 1)
                User.findByIdAndUpdate(req.body.user_id, {
                    $push: {'bids': bid._id }
                }, {
                    safe: true,
                    upsert: true
                }, function(err, bid){
                    console.log('user', 2)
                    if(err) {
                        done(err)
                    } else {
                        done(null, bid)
                    }
                });
            }
        }, function(err, response){
            console.log('response')
            if(err) {
                console.log(err)
            } else {
                res.status(200).send(response);
            }
        });
    })
活动模式

var campaignSchema = new mongoose.Schema({
    title:String,
    imgUrl:[String],
    shortDesc: { type: String, set: shortenDesc },
    longDesc:String,
    duration: Number,
    price: Number,
    desired_price: Number,
    bids: [{ type: mongoose.Schema.Types.ObjectId, ref: 'bidSchema' }],
    owner_id: { type: mongoose.Schema.Types.ObjectId, ref: 'userSchema' }
});
var schema = new mongoose.Schema({
    name: String,
    email: {
        type: String
    },
    password: {
        type: String
    },
    salt: {
        type: String
    },
    twitter: {
        id: String,
        username: String,
        token: String,
        tokenSecret: String
    },
    facebook: {
        id: String
    },
    google: {
        id: String
    },
    campaigns: [campaignSchema],
    bids: [{type: mongoose.Schema.Types.ObjectId, ref: 'bidSchema'}]
});
用户模式

var campaignSchema = new mongoose.Schema({
    title:String,
    imgUrl:[String],
    shortDesc: { type: String, set: shortenDesc },
    longDesc:String,
    duration: Number,
    price: Number,
    desired_price: Number,
    bids: [{ type: mongoose.Schema.Types.ObjectId, ref: 'bidSchema' }],
    owner_id: { type: mongoose.Schema.Types.ObjectId, ref: 'userSchema' }
});
var schema = new mongoose.Schema({
    name: String,
    email: {
        type: String
    },
    password: {
        type: String
    },
    salt: {
        type: String
    },
    twitter: {
        id: String,
        username: String,
        token: String,
        tokenSecret: String
    },
    facebook: {
        id: String
    },
    google: {
        id: String
    },
    campaigns: [campaignSchema],
    bids: [{type: mongoose.Schema.Types.ObjectId, ref: 'bidSchema'}]
});
如果你还需要看别的东西,请告诉我。感谢所有的帮助


谢谢

您正在执行
Camapaign.findbyiandupdate
您确定
Camapaign
没有错贴在那里吗?是不是应该是
活动

你好,尤里!谢谢你的回复。那是个打字错误,我把它修好了。仍然得到同样的结果。仍然是一个很好的发现,所以我假设
console.log('response')
没有被执行?您是否已确定
bid.\u id
已定义?如果是
未定义的
猫鼬可能会发生不好的事情。永远不会记录响应。我可以确认出价。_id不是未定义的。我将“console.log(req.body.campaign_id)”替换为“console.log(bid.u id)”,并得到了我想要的值。在完成console.log之后,会发生什么?它就挂在那里吗?有错误吗?Np:)它抛出了一个错误,但是错误被吞没了。您可能应该调查原因,因为在控制台中查看错误非常有用。