我的插入不工作,我得到错误错误:
Token.insert is not a function
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);
});
}
关于javascript - Mongodb/mongoose insert 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37697448/