【问题标题】:Append within Multiple Arrays using Mongoose使用 Mongoose 在多个数组中追加
【发布时间】:2015-02-15 03:10:24
【问题描述】:

我正在尝试处理由逗号分隔的不同用户的 ObjectID 组成的朋友或用户列表,现在我有 NetworkList 数组来存储用户列表,到目前为止我使用 $push 追加NetworkList 数组中的 ObjectID 列表:

型号:

var NetworkSchema = new Schema({
UserID: {
    type: String,
    default: '',
    trim: true
},
NetworkList: [{
    type: Schema.ObjectId,
    ref: 'User'
}]
});

服务器控制器:

exports.update = function(req, res) {
    var query={'UserID': req.body.UserID};
    var update = {$push: {'NetworkList': req.body.FriendID}};
};

现在我的模型是:

var NetworkSchema = new Schema({

UserID: {
type: Schema.Types.ObjectId,
ref: 'User'
},
NetworkList: [{
type: Schema.Types.ObjectId,
ref: 'User'
}],

NetworkRequest: [{
to:[{
type: Schema.Types.ObjectId,
ref: 'User'}],
from:[{
    type: Schema.Types.ObjectId,
    ref: 'User'
}]
}]

});

我想在数组的 NetworkRequest 和 NetworkList 中追加,所以我尝试将 $push 与两者一起使用

服务器控制器:

exports.update = function(req, res) {

var query={'UserID':req.body.UserID};

var update = {$push: {'NetworkRequest':{to: req.body.FriendID, from: req.body.McReg}, 'NetworkList': req.body.FriendID}};

Network.find(query,function(err,user){
console.log(user);
if (err) {
    return err;
} else {
    console.log('no error');
}
});

Network.update(update,function(err){

if (err) {
    return err;
} else {
    console.log('Updated');
}
});

文档:

{
NetworkList: [
ObjectId("5490098c9f2652f01b3f68df"),
ObjectId("5490195f5afa90e01b500c37"),
 ],
NetworkRequest: {
_id: ObjectId("54902e9375fff9b01a007516"),
from: [ObjectId("5490195f5afa90e01b500c37")],
to: [
  ObjectId("54883e606d574c000feccb08"),(//not able to append here)
]
},
UserID: ObjectId("5490195f5afa90e01b500c37"),
__v: 0,
_id: ObjectId("5490195f5afa90e01b500c38")
}

我使用了 console.log(update);我可以在两个数组中获取 objectID,但最后值没有到达数据库,我在哪里 $push 出错了?

【问题讨论】:

    标签: arrays node.js mongodb mongoose


    【解决方案1】:

    要推入子数组,您应该对 NetworkRequest 数组使用点运算符。

    exports.update = function(req, res) {
    var query={'UserID':req.body.UserID};
    var update = {$push: {'NetworkRequest.to': req.body.FriendID, 'NetworkRequest.from': req.body.McReg}, 'NetworkList': req.body.FriendID}};
    
    Network.update(query,update,{upsert:true}function(err){
    
    if (err) {
    return err;
    } else {
    console.log('Updated');
    }
    });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-21
      • 2023-04-05
      • 1970-01-01
      • 2018-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-04
      相关资源
      最近更新 更多