2015-04-05 2 views
0

Я хочу изменить поле value Тип от строки до объекта.Как использовать javascript var для ссылки на поле коллекции Mongo DB

...{value: "my title"}... ===> ...{value:{value:"my title ABC"}} 

В оболочке Монго, я представить это поле через вар JavaScript articlePath. Теперь, как я могу использовать этот var для обновления значения поля?

Следующий код создает новое поле articlePath вместо значения var.

var articlePath = "layout.content.header." + i + "." + j + ".value" 
var articleValue = block.value + " ABC" 
db.mycollection.update(
    {_id: catId}, 
    { 
     $set: { 
      articlePath: {value: articleValue} 
     } 
    }, 
    function(err, numberUpdated) { 
     print("--->err: ", err) 
    } 
) 

ответ

0

Вы не можете использовать буквальное обозначение, чтобы установить имя ключа через значение переменной. Попробуйте так:

var update = { "$set" : { } } 
update["$set"][articlePath] = { "value" : articleValue } 
db.mycollection.update({ "_id" : catId }, update, *callback*) 
+0

Большое спасибо. Оно работает. :) – user1982334

0

Попробуйте следующий фрагмент

var articlePath = {}; 
var keyName = "layout.content.header." + i + "." + j + ".value"; 
var articleValue = block.value + " ABC"; 
articlePath[keyName] = articleValue; 

db.mycollection.update(
    {_id: catId}, 
    { 
     $set: articlePath 
    }, 
    function(err, numberUpdated) { 
     print("--->err: ", err) 
    } 
) 

Благодарности

+0

спасибо большое. Оно работает. :) – user1982334