MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Verwendung von $push innerhalb von Array in Mungo

Was Sie anstreben, ist keine gültige Struktur. Was Sie stattdessen wahrscheinlich wollen, ist ein Schema, in dem NetworkList enthält direkt ein Array von ObjectIds der Freunde des Benutzers:

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

Ihre Dokumente würden dann folgendermaßen aussehen:

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

Dann können Sie einen neuen Freund zu NetworkList hinzufügen mit $push Operator wie folgt:

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){ ... });
};