簡體   English   中英

如何使用MongoDB節點驅動程序按ID查找?

[英]How do you find by id using the MongoDB Node driver?

我正在尋找使用MongoDB Node驅動程序按ID查找的最佳方法。

我看到_id字段是一個ObjectId ,因此使用字符串作為id無效。 而且我看到您可以如下使用ObjectId

var ObjectId = require('mongodb').ObjectId;

exports.show = function(req, res) {
  var db = req.app.get('db');
  var id = new ObjectId(req.params.id);
  db.collection('posts').findOne({
    _id: id
  }, function(err, post) {
    res.status(200).json(post);
  });
};

但是,是否有最佳實踐/更方便的方法? 我在瀏覽文檔時沒有碰到過。 注意:貓鼬有一個findById方法,您可以在其中使用id字符串。

_id字段已經建立索引,並且findByID隱式搜索一個文檔,因此,在findOne中您將像現在那樣在其中傳遞選項{_id: id}

據我了解,主要的設計考慮因素是使本機驅動程序API與mongo shell體驗相似,並在各處保持一致(其他驅動程序也一樣)。 為此,您可能希望使API保持簡單,但功能強大以涵蓋所有情況。 因此,概括地說,您具有find()方法和“作為返回單個文檔的find()的特例的db.collection.findOne()方法”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM