sql >> Base de Datos >  >> NoSQL >> MongoDB

Usando $ push dentro de Array en mongoose

Lo que estás buscando no es una estructura válida. Lo que probablemente desee en su lugar es un esquema donde NetworkList contiene directamente una matriz de ObjectIds de los amigos del usuario:

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

Tus documentos se verían así:

{
    "_id" : ObjectId("548adbc8b7eac44013bf188d"),
    "NetworkList" : [ 
        ObjectId("5486fab40bc27314276be8cf") 
    ],
    "UserID" : "547eaaab6c39471c3f5aebb6",
    "__v" : 0
}

Luego puede agregar un nuevo amigo a NetworkList usando el $push operador como este:

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

    Network.findOneAndUpdate(query, update, function(err, doc){ ... });
};