如何使用 Mongoose 进行查询,然后拿该文档做其他事情?
Posted
技术标签:
【中文标题】如何使用 Mongoose 进行查询,然后拿该文档做其他事情?【英文标题】:How do I query using Mongoose, but then take that document to do other things? 【发布时间】:2011-08-14 10:05:03 【问题描述】:User.findOne(, function(err, doc)
//do stuff with "doc" here.
);
这就是我目前的做法。但是,如果我想拿“doc”,然后做点什么。
User.findOne(, function(err, doc)
//do stuff with "doc" here.
);
runAnotherFunction(doc.name)
doc...
如何将“doc”从“function”部分中取出?
【问题讨论】:
【参考方案1】:Node 是事件驱动的,它不是您可能习惯的程序代码。在 mongoose 可以完成检索记录之前,已经可以很好地通过调用 findOne。需要对文档进行的任何操作都应该在回调中进行(“函数”部分)。
【讨论】:
那么,我不能将“doc”的内容从回调部分中取出吗?如果我需要获取该人的性别,并在回调之外使用它.... @TIMEX 看看Step,这会强制在 Node 中进行序列化执行。 John,有没有让我思考 node.js 方式的教程?我现在正在考虑程序性,我不知道如何编写非程序性。【参考方案2】:你可以试试“step”, https://github.com/creationix/step
这样更容易控制逻辑流。
例如看这个:
async nodejs querying and processing results
【讨论】:
Step 适用于您需要控制流的情况,但请记住,如果您过度使用它,那么使用事件驱动语言的意义何在。 @JohnD 我同意,我不太了解 NodeJS以上是关于如何使用 Mongoose 进行查询,然后拿该文档做其他事情?的主要内容,如果未能解决你的问题,请参考以下文章
Mongoose 中的 Model.findById() - 异步/等待 [重复]