2013-07-22 24 views
1

我想$pushMongoDB建立在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