2012-04-20 9 views
2

私は数字の配列を有するnodejs作品:上昇値は

Posts.update({"readerID":readerID},{$inc:{"readersNum.0":1}},{upsert:true,safe:true}, 
       function(err){ 
        console.log(err); 
       }); 

しかし、問題は私は値が特定のではなく0で、どのように増やす必要がありますか?

また、私はこれを試してみました:上記のコードを実行する

Posts.findOne({"readerID":readerID },['readersNum'],function(err, readerID){ 
    readerID.readersNum[indexVariable] = readerID.readersNum[indexVariable]+1; 
    try { 
     Posts.save(readerID,function(err) { 
     if (err) { 
      console.log("ERROR while saving reader num: " + err); 
     } 
     else { 
      console.log('saved reader num successfully');   

     } 
     }); 
    } 
    catch(e){ 
     console.log("ERROR while saving reader num: " + e); 
    } 
    }); 

は、コンソールで変更された値を出力し、「成功したリーダーNUMを保存」が、データベース内の値は同じまま! 誰かが私に間違っていることを教えてもらえると本当に感謝しています。 ありがとうございました!

答えて

4

あなたはこれを行うことがインデックスを知っていると仮定すると:

var update = {}; 

update['readersNum.' + index] = 1; // update now has property like `readersNum.3` 

Posts.update({"readerID":readerID},{$inc: update},{upsert:true,safe:true}, function(err){ console.log(err); }); 
関連する問題