Nodejs mongo返回带有分页信息的数据

时间:2014-09-13 08:27:52

标签: node.js mongodb

我正在使用node和mongo与本机客户端。

我想在我的应用程序中添加分页。

为了获得分页,我需要我的回复始终与count一起返回data

我想得到类似的东西:

{
   count : 111, 
   data : [ { 'a' : 'only first item was requested' } ]
}

我可以在mongo

中执行此操作
> var guy  = db.users.find({}).limit(1)
> guy.count()
11
> guy.toArray()
[
    {
        "_id" : ObjectId("5381a7c004fb02b10b557ee3"),
        "email" : "myEmail@guy.com",
        "fullName" : "guy mograbi",
        "isAdmin" : true,
        "password" : "fe20a1f102f49ce45d1170503b4761ef277bb6f",
        "username" : "guy",
        "validated" : true
    }
]

但是当我对nodejs mongo客户端做同样的事情时,我会收到错误。

var cursor = collection.find().limit(1);
cursor.toArray( function(){ .. my callback .. });
cursor.count(); 

似乎

    游标上未定义
  • count
  • 一旦我在光标上应用toArray,我就无法再次使用光标

如何使用nodejs,我可以直接用mongo完成同样的事情吗?

1 个答案:

答案 0 :(得分:1)

正如其他人所说的那样,如果你想拥有项目的总数,那么你需要有两个查询数据,没有别的办法。你为什么要关心创建两个查询?