我在mongodb上运行一个更新查询,以将所有数组元素的值(现在是整数)替换为字符串,其中将包括文本和整数值(转换为字符串)
JSON文档现在看起来像:
{
"_id" : ObjectId("5ca2364a263756510c2922d7"),
"ProviderOfferings" : [
30,
3,
0,
0
],
"Cost" : 59,
"Currency" : "EUR"
}
我想将其更新为
{
"_id" : ObjectId("5ca2364a263756510c2922d7"),
"ProviderOfferings" : [
"name:ingredient ,offeringUnit:30, Type:kilos"
3,
0,
0
],
"Cost" : 59,
"Currency" : "EUR"
}
我运行以下命令:
db.getCollection('Products').update
({"_id":ObjectId("5ca2364a263756510c2922d7")},
{$set:{"ProviderOfferings.0":{$concat:["name:ingredient ,offeringUnit:",{$substr: [{$arrayElemAt: [ "$ProviderOfferings", 0 ]}, 0, 2 ]},
" Type:kilos"]}}})
但是我得到了错误:
The dollar ($) prefixed field '$concat' in 'ProviderOfferings.0.$concat' is not valid for storage.
如何将$ set与$ concat一起使用,以便将字段更新为包含该字段的旧值的字符串值?