2017-09-25 79 views
0

我正在嘗試創建一個待辦事項列表,其中我正在使用mlab作爲我的數據庫提供程序。通過_id在express和mongodb中獲取文檔

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}); 
     }) 

附加是控制檯中所有路由輸出的一個單一鏡頭。 enter image description here

在圖像(1)發現的輸出()。指定者()

(2)爲得到更新和我收到任務的ID在URL路徑PARAMS。

(3)是我運行這個findOne語句後。 。

更新功能 - >根據ID

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

我得到null作爲值獲取任務(注:我硬編碼進行確認的值)。

讓我知道爲什麼我得到null爲id匹配(你可以參考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解釋的ObjectIds填充的。 https://docs.mongodb.com/manual/core/document/#document-id-field –

+0

我試過這有一個錯誤。打擾一下。我明天會更新截圖。 –

+0

我錯過了這一行var ObjectId = require('mongodb')。ObjectID;所以它給了我錯誤。感謝您的努力。 –