Mongodb 使用精益猫鼬和回调
我试图在mongoDB查询中使用Mongodb 使用精益猫鼬和回调,mongodb,mongoose,callback,Mongodb,Mongoose,Callback,我试图在mongoDB查询中使用lean,但我面临的问题是我没有使用.exec()方法。我使用回调实现,如下所示 model.find({user_id: mobile_no }, {'_id':0, 'type':1}, {sort: {dateTime: -1}, skip: page*page_size, limit: page_size + 1}, function(err, docs) { if (err) { } else {
lean
,但我面临的问题是我没有使用.exec()
方法。我使用回调实现,如下所示
model.find({user_id: mobile_no }, {'_id':0, 'type':1}, {sort: {dateTime: -1}, skip: page*page_size, limit: page_size + 1}, function(err, docs) {
if (err) {
} else {
}
});
.lean().exec()
但在大多数文档中,每个人都使用lean
和.exec()
如下所示
model.find({user_id: mobile_no }, {'_id':0, 'type':1}, {sort: {dateTime: -1}, skip: page*page_size, limit: page_size + 1}, function(err, docs) {
if (err) {
} else {
}
});
.lean().exec()
谁能告诉我如何使用回调实现使用
lean
,或者我必须使用.exec()
实现才能使用它。您可以同时使用.exec()
和回调:
model.find(...).lean().exec(function(err, docs) {
...
});
另请参见,其中一个示例也是这样做的
model.find({user_id: mobile_no }, {'_id':0, 'type':1}, {sort: {dateTime: -1}, skip: page*page_size, limit: page_size + 1}, function(err, docs) {
if (err) {
} else {
}
}).lean();
您必须在查询结束时编写.lean():3是的,但是由于我没有使用
exec()
,我可以不使用exec()
而使用lean()
,因为否则我将不得不因为exec()而到处更改代码。我不明白:你已经必须到处更改代码,因为你想使用.lean()
,那么添加一个额外的.exec()
有什么问题吗?就像我的回答所说的:你仍然可以使用.exec()
,如果你不想,你不必使用承诺。好的,谢谢,我只想使用我的语法,没有任何额外的问题,谢谢。实际上,查询所用的时间还是一样的,没有明显的区别??你能告诉我为什么会这样吗?我猜你的查询速度太慢了,lean
无法解决这个问题(它只跳过了Mongoose将MongoDB结果转换为Mongoose文档的步骤)。