2017-09-25 7 views
0

私はデータベースプロバイダとしてmlabを使用しているtodoリストを作成しようとしています。エクスプレスとmongodbで_idでドキュメントを取得します

tasks = db.connect().collection('tasks'); 
tasks.find().toArray(function (err, result) { 
      console.log("result", result) // giving me result 
      if(err) throw err; 
      res.render('tasks/index', {title:"Tasks",tasks:result}); 
     }) 

コンソールに出力されたすべてのルートの1つのショットです。画像でenter image description here

(1)(検索の出力である)。のtoArray()

(2)更新を取得し、私は、URLのルートのparamsでのタスクのIDを取得しています。

(3)は、このfindOne文を実行した後です。

更新機能 - > ID

tasks.findOne({"_id":"59c91fbb4b262004f059f67f"}, function(err, task){ 
     console.log(err) 
     console.log(task) 
     res.render('tasks/update', {title:"Update"}); 
    }); 

に基づくタスクは、私は、値としてnullを取得しています(注:私は、ハードの確認のための値をコーディングしています)。

idが一致するとnullになる理由を教えてください(これは1から参照できます)。

タスク-2

私は更新したい場合にも、どのように私は、変更された値を送信shuld。あなたの最初の質問については

答えて

1

、モンゴで_idに一致するときには、ObjectIdがに従って検索条件を定義する必要があります。

tasks.findOne({"_id":ObjectId("59c91fbb4b262004f059f67f")}, function(err, task){ 
     console.log(err) 
     console.log(task) 
     res.render('tasks/update', {title:"Update"}); 
    }); 

を使用すると、特にトラブルのいくつかの種類を持っている、更新については? documentationには、送信するクエリの構造に関する多くの情報があります。

+0

一般的に正しいです。しかし、一意の値をdocument._idとして割り当てることができます。もちろん、ほとんどの場合、このフィールドには、NicolasのようにObjectIdが設定されています。 https://docs.mongodb.com/manual/core/document/#document-id-field –

+0

これを試したところ、エラーが発生しました。すみません。私は明日のスクリーンショットを更新するつもりです。 –

+0

私はこの行がありませんでしたvar ObjectId = require( 'mongodb')。ObjectID;それは私にエラーを与えていた。努力をいただきありがとうございます。 –

関連する問題