首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用mongoskin的聚合查询

使用mongoskin的聚合查询
EN

Stack Overflow用户
提问于 2014-02-21 20:40:22
回答 1查看 1.4K关注 0票数 3

我想使用mongoskin运行以下查询,但似乎不支持聚合

mongodb查询

代码语言:javascript
复制
db.users.aggregate({
        $match : {
            _id : ObjectId("52ee0844177c86dc1d000001")
        }
    }, {
        $unwind : "$todos"
    }, {
        $unwind : "$todos.tags"
    }, {
        $group : {
            _id : "$todos.tags",
            count : {
                $sum : 1
            }
        }
    });

javascript mongoskin代码不工作的

代码语言:javascript
复制
var tags = db.collection('users').aggregate({
        $match : {
            _id : db.bson_serializer.ObjectID.createFromHexString(req.user._id.toString())
        }
    }, {
        $unwind : "$todos"
    }, {
        $unwind : "$todos.tags"
    }, {
        $group : {
            _id : "$todos.tags",
            count : {
                $sum : 1
            }
        }
    });

如何使用聚合体与mongoskin?

编辑

当我给console.log("%j", tags);打电话的时候

代码语言:javascript
复制
TypeError: Converting circular structure to JSON
    at Object.stringify (native)
    at K:\home\projects\todo\routes\tags.js:22:20
    at callbacks (K:\home\projects\todo\node_modules\express\lib\router\index.js:164:37)
    at param (K:\home\projects\todo\node_modules\express\lib\router\index.js:138:11)
    at pass (K:\home\projects\todo\node_modules\express\lib\router\index.js:145:5)
    at Router._dispatch (K:\home\projects\todo\node_modules\express\lib\router\index.js:173:5)
    at Object.router (K:\home\projects\todo\node_modules\express\lib\router\index.js:33:10)
    at next (K:\home\projects\todo\node_modules\express\node_modules\connect\lib\proto.js:193:15)
    at Object.ensureAuthenticated [as handle] (K:\home\projects\todo\services\middleware.js:13:11)
    at next (K:\home\projects\todo\node_modules\express\node_modules\connect\lib\proto.js:193:15)

events.js:72
        throw er; // Unhandled 'error' event
              ^
TypeError: object is not a function
    at K:\home\projects\todo\node_modules\mongoskin\node_modules\mongodb\lib\mongodb\collection.js:1611:7
    at K:\home\projects\todo\node_modules\mongoskin\node_modules\mongodb\lib\mongodb\db.js:940:5
    at Cursor.nextObject (K:\home\projects\todo\node_modules\mongoskin\node_modules\mongodb\lib\mongodb\cursor.js:678:5)
    at commandHandler (K:\home\projects\todo\node_modules\mongoskin\node_modules\mongodb\lib\mongodb\cursor.js:658:14)
    at K:\home\projects\todo\node_modules\mongoskin\node_modules\mongodb\lib\mongodb\db.js:1670:9
    at Server.Base._callHandler (K:\home\projects\todo\node_modules\mongoskin\node_modules\mongodb\lib\mongodb\connection\base.js:382:41)
    at K:\home\projects\todo\node_modules\mongoskin\node_modules\mongodb\lib\mongodb\connection\server.js:472:18
    at MongoReply.parseBody (K:\home\projects\todo\node_modules\mongoskin\node_modules\mongodb\lib\mongodb\responses\mongo_reply.js:68:5)
    at null.<anonymous> (K:\home\projects\todo\node_modules\mongoskin\node_modules\mongodb\lib\mongodb\connection\server.js:430:20)
    at EventEmitter.emit (events.js:95:17)
EN

回答 1

Stack Overflow用户

发布于 2014-10-08 21:58:55

检查json结构!集合在比赛结束后就关闭了。相反,将参数聚合为数组:

代码语言:javascript
复制
db.collection('users').aggregate([{
    $match : {
      _id : db.bson_serializer.ObjectID.createFromHexString(req.user._id.toString())
    }
}]);

检查一下文档

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21944712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档