node.js - 如何使用 MongoDB Node 驱动程序通过 id 查找?

标签 node.js mongodb

我正在寻找使用 MongoDB Node driver 按 id 查找的最佳方法.

我发现 _id 字段是一个 ObjectId,因此使用字符串作为 id 不起作用。我看到你 could use 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);
  });
};

但是有没有最佳实践/更方便的方法?我在查看文档时没有遇到过这样的情况。注意:Mongoose 有一个 findById您可以只使用 id 字符串的方法。

最佳答案

_id 字段已建立索引,并且 findByID 隐式搜索一个文档,因此,findOne 您将像您已经在做的那样传递选项 {_id: id}

关于node.js - 如何使用 MongoDB Node 驱动程序通过 id 查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31215298/

相关文章:

node.js - 如何通过流获取文件

node.js - 每次构建后日志都会被清除

angularjs - Apache 和 Yeoman 在同一服务器上构建 NodeJS 应用程序...虚拟主机?

javascript - 相应地添加/删除 Mongoose 中的元素

javascript - NodeJS 检测修改过的文件

node.js - 无法在node.js中使用http.request发送参数

node.js - Mongoose/BodyParser 未正确接受 urlencoded POST 请求

python - 是否可以使用 pymongo 将变量用于集合名称?

c# - MongoDB 的推送和根在 C# 中的等效项是什么?

MongoDB - 简单的子查询示例