2012-06-21 2 views
6

mongodb-native 드라이버를 사용하는이 코드에서는 별도의 변수에서 지정하는 필드의 값을 늘리고 싶습니다. 문제는 $ inc 절의 필드 이름이 변수의 내용이 아니라 '변수'라는 것입니다. 쿼리 부분에서 선택한 변수가 예상대로 작동하고 올바른 ID를 찾습니다.변수를 mongodb-native findAndModify에서 필드 이름으로 사용하는 방법?

var selected = 'id_of_the_selected_one'; 
var variable = 'some_string'; 
collection.findAndModify(
    {_id : selected}, 
    {}, 
    {$inc : {variable : 1}}, 
    {new : true, upsert : true}, 
    function(err, autoincrement) { /* ... */ } 
); 

'variable'이라는 단어 대신 변수의 내용이 표시되도록하려면 어떻게해야합니까?

답변

13

다른 변수의 키를 해당 값으로 설정하고이를 객체로 전달하십시오. 동작에 대한 설명 :

var selected = 'id_of_the_selected_one'; 
var variable = 'some_string'; 
var action = {}; 
action[variable] = 1; // the value 

collection.findAndModify(
    {_id : selected}, 
    {}, 
    {$inc : action}, 
    {new : true, upsert : true}, 
    function(err, autoincrement) { /* ... */ } 
); // Same as {$inc: {'some_string': 1} } 
+0

감사합니다. 그게 정확히 내가 바라보고 있었던거야. – Timo

관련 문제