存储 mongoose (node.js orm) 查询结果

Posted

技术标签:

【中文标题】存储 mongoose (node.js orm) 查询结果【英文标题】:storing a mongoose (node.js orm) query result 【发布时间】:2011-04-20 14:47:07 【问题描述】:

有没有办法做类似的事情:

var first_user = User.find( _id: user_id ).first(); 

使用 mongoose ORM? http://github.com/LearnBoost/mongoose

我要做的是存储查询的返回结果以供以后使用。

当我使用上述内容时,我返回到var first_user 的只是 QueryWriter 对象。

【问题讨论】:

你能用“findOne”吗?我对 Mongoose 不是很熟悉,但是“findOne”功能在大多数驱动程序中都非常一致。 【参考方案1】:

您可以通过传递的回调访问 mongoose 查询的结果。您会发现 mongoose 与大多数 node.js 模块一样,广泛使用异步回调。 Mongoose 还提供了一个很好的方法来通过它的 id 返回一个对象,如果你想在回调范围之外使用这个结果,你可以这样做:

var first_user;
User.findById(user_id, function(user)
  first_user = user;
);

对于其他 mongoose API 调用,我建议查看 mongoose 测试以获得很好的参考。查看http://github.com/LearnBoost/mongoose/blob/master/tests/integration/model.test.js

【讨论】:

谢谢。在发布我想要的语法后,我突然想到,如果它可用的话,它的本质就是块。

以上是关于存储 mongoose (node.js orm) 查询结果的主要内容,如果未能解决你的问题,请参考以下文章

Mongoose:嵌套 Json 的模式并存储它(Node.js)

使用 Mongoose+Node.js 在 MongoDB 中存储非结构化 JavaScript 对象

node.js + express.js:使用 mongodb/mongoose 处理会话

使用 mongoose(Node.js) 在 MongoDB 中搜索

[Node.js, MongoDB/Mongoose]:使用 indexOf 生成唯一的标签列表非常慢

Node.js 手册查询-3-Mongoose 方法