У меня есть документ в базе данных следующим образом.переименовать поле во встроенной матрице mongodb
{
"CorePrice" : 1,
"_id" : 166,
"partno" : 76,
"parttype" : "qpnm",
"shipping" : [{
"shippingMethod1" : "ground",
"cost1" : "10"
},
{
"shippingMethod2" : "air",
"cost2" : "11"
},
{
"shippingMethod3" : "USPS",
"cost3" : "3"
},
{
"shippingMethod4" : "USPS",
"cost4" : 45
}]
}
Я пытаюсь переименовать ShippingMethod4 в shippingMethod, итерируя, используя следующий код.
remap = function (x)
{
if (x.shipping) {
db.foo.update ({ _id:x._id},
{ $set: {
"shipping.shippingMethod","x.shipping.shippingMethod4" },
$unset:{ "shipping.shippingMethod4":1
}}); } }
Однако он бросает мне следующую ошибку:
"Sun Oct 06 02:09:44.764 JavaScript execution failed: SyntaxError: Unexpected token ,
Не уверен, почему. Кто-то может помочь?
Вы не можете ссылаться на одно поле и «тянуть» содержимое и хранить его в другом поле. Я бы предположил, что, поскольку это одноразовое исправление, просто возьмите весь документ, сделайте исправления и обновите документ. – WiredPrairie
После $ set у вас есть «,» после «shipping.shippingMethod». Это должно быть «:» ;-). Однако это не решит вашу проблему, потому что у вас все еще есть ошибки. – Moreno