Javascript Mongoose模式,设置键变量

Javascript Mongoose模式,设置键变量,javascript,json,mongodb,express,mongoose,Javascript,Json,Mongodb,Express,Mongoose,我正在使用expressjs、mongodb和mongoose,我正在尝试更新以下模式的counts对象: var UsersSchema = new Schema({ username: { type: String, required: true }, counts: { followers: { type: Number, default: 0 }, trips: { type: Number, default: 0 }, videos: { type: N

我正在使用expressjs、mongodb和mongoose,我正在尝试更新以下模式的counts对象:

var UsersSchema = new Schema({
  username: { type: String, required: true },
  counts: {
    followers: { type: Number, default: 0 },
    trips: { type: Number, default: 0 },
    videos: { type: Number, default: 0 }
  }
})
和更新部分(不工作):

工作示例,但不是动态的:

Users.update({'username': username}, {$set: {'counts.trips': 12}}, callback)

有什么想法吗?

您可以为$set创建动态变量并在查询中使用

var key = 'trips';
var dynSet = {$set: {}};
dynSet.$set["counts." + key] = 12;
Users.update({'username': username}, dynSet, callback)

可能的副本是的,谢谢!这就是我要找的。我想知道是否还有其他方法可以做到这一点。这个解决方案似乎不起作用,但这样看起来更干净。让我检查一分钟。
var key = 'trips';
var dynSet = {$set: {}};
dynSet.$set["counts." + key] = 12;
Users.update({'username': username}, dynSet, callback)