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

Вмъкването на Mongodb/mongoose не е функция

Проверете този пример с код, той трябва да работи както ви трябва.

Не виждам тук някаква неразбираща част.

Задавайте въпроси в коментарите, мога да обясня, ако не разбирам.

var tokenSchema = mongoose.Schema({
  owner: { 
    type: 'String',
    required: true,
    index: {
      unique: true
    }
  }, 
  token: {
    type: ['String'],
    default: []
  }
});

var Token = module.exports = mongoose.model('tokens', tokenSchema);

//save token, if token document exist so push it in token array and save
module.exports.saveToken = function(owner_id, token, callback){
    Token
      .findOne({owner: owner_id})
      .exec(function(err, tokenDocument) {
        if(tokenDocument) {
          if(tokenDocument.token.indexOf(token) > -1) { // found that token already exist in document token array
            return callback(null, tokenDocument); // don't do anything and return to callback existing tokenDocument
          }

          tokenDocument.token.push(token);
          tokenDocument.save(callback);
          return; // don't go down, cuz we already have a token document
        }

        new Token({owner: owner_id, token: [token]}).save(callback); // create new token document with single token in token array
    });
}

//get all tokens by owner_id
module.exports.getAllTokens = function(owner_id, callback){
    Token
      .findOne({owner: owner_id})
      .exec(function(err, tokenDocument) {
        callback(err, tokenDocument.token);
      });
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Заявката Mongoose near(...) в индексирано поле на 2dsphere не връща валидни резултати

  2. Вземете подмножество на масиви в mongodb, като използвате източник на масив

  3. MongoDB $rand

  4. Как да възстановите конкретна колекция в MongoDB с помощта на логическо архивиране

  5. Разлика между Find и FindAsync