Mongodb / mongoose插入不是一个函数

我的插入不工作,我得到错误的错误:

Token.insert不是一个函数

var Token = module.exports = mongoose.model('tokens', tokenSchema); //error module.exports.saveToken = function(owner_id, token, callback){ console.log(owner_id,token); Token.insert({"owner":owner_id,"token":token},callback); } //working module.exports.getAllTokens = function(owner_id, callback){ Token.find({"owner":owner_id},callback); } 

检查这个代码示例,它应该按照您的需要工作。

我不在这里看到任何不理解的部分。

在评论中提出问题,我可以解释,如果不明白。

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

您可以使用:

 let newvalue = new Token({"owner":owner_id,"token":token}); newvalue.save();