jdw*_*jdw 6 node.js node-mongodb-native mean-stack monk
我正在通过MEAN堆栈教程.它包含以下代码作为路由index.js.我的Mongo系列的名字是brandcollection.
/* GET Brand Complaints page. */
router.get('/brands', function(req, res) {
var db = req.db;
var collection = db.get('brandcollection');
collection.find({},{},function(e,docs){
res.render('brands', {
"brands" : docs
});
});
});
Run Code Online (Sandbox Code Playgroud)
我想修改此代码,但我不完全了解如何.find调用该方法.具体来说,我有以下问题:
传递什么对象function(e, docs)作为其参数?
是function(e, docs)MongoDB语法的一部分吗?我查看了有关Mongo CRUD操作的文档,但找不到对它的引用.似乎Mongo .find操作的标准语法是collection.find({},{}).someCursorLimit().我没有在.find操作中看到对第三个参数的引用,为什么一个允许在这里?
如果function(e, docs)不是MongoDB操作,它是Monk API的一部分吗?
从教程中可以清楚地看出,这段代码返回集合中的所有文档,并将它们作为名为"品牌"的属性放在对象中.但是,function(e, docs)在这个过程中,具体扮演什么角色呢?
任何澄清将非常感谢!
ma0*_*a08 12
第一个参数是查询.
第二个参数(可选)是投影,即如果要限制匹配文档的内容
collection.find( { qty: { $gt: 25 } }, { item: 1, qty: 1 },function(e,docs){})
Run Code Online (Sandbox Code Playgroud)
意味着只获得匹配文档中的item和qty字段
第三个参数是在查询完成后调用的回调函数.function(e, docs)是node.js语法的mongodb驱动程序.第一个参数e是错误.docs是匹配文档的数组.如果发生错误,则会给出错误e.如果查询成功,匹配的文档将在第二个参数中给出docs(名称可以是您想要的任何名称).
该鼠标具有可用于操纵匹配的文档的MongoDB返回之前的各种方法.collection.find({qty:{$ gt:25}},{item:1,qty:1})是一个游标,你可以对它进行各种操作.
collection.find( { qty: { $gt: 25 } }, { item: 1, qty: 1 }).skip(10).limit(5).toArray(function(e,docs){
...
})
Run Code Online (Sandbox Code Playgroud)
这意味着您将跳过前10个匹配的文档,然后返回最多5个文档.
所有这些东西都在文档中给出.我认为最好使用mongoose而不是本机驱动程序,因为它的功能和受欢迎程度.
| 归档时间: |
|
| 查看次数: |
7891 次 |
| 最近记录: |