2014-02-21 114 views
3

彙總查詢我想運行與mongoskin下面的查詢,但似乎總不支持與mongoskin

MongoDB的查詢

db.users.aggregate({ 
     $match : { 
      _id : ObjectId("52ee0844177c86dc1d000001") 
     } 
    }, { 
     $unwind : "$todos" 
    }, { 
     $unwind : "$todos.tags" 
    }, { 
     $group : { 
      _id : "$todos.tags", 
      count : { 
       $sum : 1 
      } 
     } 
    }); 

的JavaScript mongoskin代碼不工作

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 
      } 
     } 
    }); 

如何使用聚合與蒙戈金?

編輯

當我打電話console.log("%j", tags);我得到

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) 
+0

你可以擴大「不工作」? – JohnnyHK

+0

當我想顯示結果時出現錯誤。如果我刪除日誌調用,我也會得到events.js錯誤 – Sydney

+0

查詢是正確的。這是我的node.js代碼中的一個問題 – Sydney

回答

0

檢查JSON結構!比賽結束後,球隊關閉。取而代之的是,作爲數組的集合參數:

db.collection('users').aggregate([{ 
    $match : { 
     _id : db.bson_serializer.ObjectID.createFromHexString(req.user._id.toString()) 
    } 
}]); 

結賬documentation

相關問題