【发布时间】:2019-07-03 09:56:21
【问题描述】:
谁能解释为什么我的简单更新/设置查询不起作用?我使用带有承诺的猫鼬通过nodejs进行查询。这是我的架构: const mongoose = require('mongoose');
var usersSchema = mongoose.Schema ({
username:String,
password:String,
home_planet:Number,
last_planet:Number,
experience:Number,
money:Number
}, {collection: 'account', versionKey: false});
module.exports = usersSchema;
这是我在数据库中更新/设置值的函数
const usersSchema = require('./userSchema');
const mongoose = require('mongoose');
var userModel = mongoose.model('userModel', usersSchema);
userModel.setUserGold = setUserGold;
function setUserGold(username, newGold) {
return userModel.updateOne({username:username}, {
$set: {experience:newGold}
});
}
以及对函数的调用
userModel.setUserGold('test', 500);
其中 test 是用户名,500 是要为该用户名添加到数据库中的 gold 值,但没有设置/更新任何内容?
【问题讨论】:
-
你的函数是异步的吗?
-
出于调试目的,请尝试放弃 upsert:true。如果没有文档匹配过滤器,这将创建一个新文档。
-
@Mr.Gandhi 我相信猫鼬查询默认是异步的,不是吗?我试过添加 upsert: true,但还是不行。