2013-07-22 2 views
1

Я пытаюсь $push элемент в мою запись в MongoDB построен на Node (с использованием MongoJS), например, так:

exports.saveToUser = function (req, res) { 
    console.log("IN"); 
    var user = req.params.user; 
    var param = req.params.param; // equals "foo" 
    var value = req.params.value; // equals "bar" 
    console.log("Saving Data to User"); 
    console.log(util.inspect(param, false, null)); 

    db.users.update({"_id": ObjectId(user)}, {$push: {param:value}}, function (err, record) { 
     if (err) { 
      console.log("Lookup Error: " + err); 
     } else{ 
      console.log("Updated " + user + " with " + param); 
     } 
    }); 
}; 

Это работает, за исключением функция нажимает «param: bar» вместо «foo: bar» на мою запись (см. комментарии выше, для чего это относится).

Я попытался сделать $push: {eval(param):value}, который был немного выстрелом в темноте, но все равно не работал. Каков наилучший способ сделать это?

ответ

2
var ob = {}; 
ob[param] = value; 

db.users.update({"_id": ObjectId(user)}, { $push: ob }, function (err, record) { 
    // etc.. 
}); 
+0

Отлично, спасибо! – Jascination

+0

@Jascination Добро пожаловать :) – karaxuna

Смежные вопросы