如何编写这个 MongoDb 更新运算符
How to write this MongoDb update operator
我有一个 'applications' 集合,格式如下:
{
"_id" : "<id>",
"versions" : {
"2_2_1" : 5,
"2_2_2" : 38,
"2_2_3" : 76
}
}
我想根据发送请求的应用程序版本增加版本号。如何为更新查询编写 $inc 运算符?
我的查询似乎无法正常工作,因为增加的版本号总是因请求而异。我无法让位置 $ 运算符为我的查询正常工作。
您使用 "dot notation" 来访问 "version" 下的特定值,但您还必须 "build" 使用您使用的任何语言的对象键。
作为 JavaScript 示例:
var request = "2_2_1";
var update = { "$inc": { } };
update["$inc"]["versions." + request] = 1;
这产生:
{ "$inc": { "versions.2_2_1": 1 } }
因此您只需执行更新:
db.collection.update({ "_id": id },update);
如果 "request" 版本子键存在,那么它是 "incremented" 之前的值。如果它是 "new" 键,那么初始值将为 1
.
我有一个 'applications' 集合,格式如下:
{
"_id" : "<id>",
"versions" : {
"2_2_1" : 5,
"2_2_2" : 38,
"2_2_3" : 76
}
}
我想根据发送请求的应用程序版本增加版本号。如何为更新查询编写 $inc 运算符?
我的查询似乎无法正常工作,因为增加的版本号总是因请求而异。我无法让位置 $ 运算符为我的查询正常工作。
您使用 "dot notation" 来访问 "version" 下的特定值,但您还必须 "build" 使用您使用的任何语言的对象键。
作为 JavaScript 示例:
var request = "2_2_1";
var update = { "$inc": { } };
update["$inc"]["versions." + request] = 1;
这产生:
{ "$inc": { "versions.2_2_1": 1 } }
因此您只需执行更新:
db.collection.update({ "_id": id },update);
如果 "request" 版本子键存在,那么它是 "incremented" 之前的值。如果它是 "new" 键,那么初始值将为 1
.