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. mongoシェルでドキュメントフィールドを表示するにはどうすればよいですか?

    2. Meteorにはどのようなセキュリティメカニズムがありますか?

    3. MongoDBでデータベースをコピー/クローン化する

    4. DeprecationWarning:Dbクラスでのイベントのリッスンは非推奨になり、次のメジャーバージョンで削除される予定です。