[英]How do you do a contains query using the MongoDB node.js driver?
[英]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.