2016-04-19 7 views
1

を表現するMongoDB:私はポストを行うと更新サブドキュメントが、私はこのエンドポイントを持っている

restaRouter.route('/lists/:id/') 
    .post(function(req, res) { 
     db.Restaurant.update({_id: req.params.id}, { $push: { reviews: req.body }}, function(err, doc) { 
      if (err) { 
       res.send(err); 
      } 
      res.json(doc); 
     }) 
    }); 

を、_idを使用して、このような文書を見つけることになっています。 _idが動的に生成されます。

{ 
    "_id": "571616e420cac41111e90ecf", 
    "title": "Yep", 
    "address": "Somewhere", 
    "about": "Everything", 
    "reviews": [ 
    { 
     "name": "My name", 
     "email": "[email protected]", 
     "message": "My message" 
    } 
    ] 
} 

サブ文書としてレビュー欄にアイテムをプッシュします。

req.bodyは次のようになります。

{ 
    "name": "foo", 
    "email": "[email protected]", 
    "message": "myFoo bar" 
} 

私はJSONオブジェクトは、エンドポイントに当たっているものです知っていますか?はい。 console.log(req.body)が確認します。現時点で

、私が投稿し、私は戻って取得応答が、その後変更された

{ 
    "ok": 1, 
    "nModified": 0, 
    "n": 0 
} 

何もありません。私は間違って何をしていますか?あなたはexempleとそう{_id:ObjectId('myobectID')}

を使用する必要があり、私はそれがこれを行うには何を持っている疑いが、私はあなたのクエリでmongojs

答えて

3

を使用しています:

特定

db.Restaurant.update({_id: ObjectId(req.params.id)}, { $push: { reviews: req.body }}, function(err, doc) { 
... 
} 

mongojs

OPにはmongojsが記載されているため、上記と同じことが可能です:

db.Restaurant.update({_id: mongojs.ObjectId(req.params.id)} ... 
+0

修正済み。それはちょっと奇妙なことに私はそれを逃した。ありがとう – Rexford

+2

あなたが答えを受け入れることができれば私の評判は感謝します:) – Bameza

関連する問題