MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Използване на $push в рамките на Array в mongoose

Това, към което се стремите, не е валидна структура. Това, което вероятно искате вместо това, е схема, където NetworkList директно съдържа масив от ObjectIds на приятелите на потребителя:

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

Тогава вашите документи ще изглеждат така:

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

След това можете да добавите нов приятел към NetworkList използвайки $push оператор като този:

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoJS не връща данни при търсене с регулярни изрази

  2. Как да индексирам два масива в MongoDB?

  3. Вмъкнете масив от обекти в MongoDB

  4. mongoose заявка:намиране на обект по id в масив

  5. mongodb обновяване на push масив