2014-03-29 3 views
2

나는 sails-mongo와 함께 돛을 사용하고 있으며 컬렉션 전체에서 집계를 수행하려고합니다. mongodb 서버에 완전히 새로운 연결을 생성하는 대신, waterline이 사용하는 연결 객체를 재사용하고 싶습니다. 이 연결 개체가 어딘가에서 사용 가능하며 모든 쿼리 유형을 수행 할 수 있습니까?Sails.js mongodb map reduce

이것은 흘수선/돛이 현재 집계를 할 수 없다는 것을 전제로합니다.

답변

3

.native 메소드를 찾고있는 것처럼 들리 겠지만, 원시 노드 mongo 콜렉션 인스턴스를 반환합니다. 이렇게하면 네이티브 Mongo 메서드를 사용할 수 있습니다. 예를 들어, 경우 항해에 User 모델, 당신은 할 것이다 : 기본 노드 몽고 드라이버

User.native(function(err, userCollection) { 

    userCollection.aggregate(...) 

} 

문서는 here 있으며, 집계 작업을 수행하는 방법에 대한 섹션을 포함.

.native에 대한 문서는 on the sailsjs.org입니다.

+0

을 이 정보? sails-mongo 소스를 읽는 것 외에도 구체적으로 찾고 싶다면'native' 메소드 – mrmagooey

1

그냥 적은 검색 및 경험을 공유 할 수는 여기 (모델 사용자에 대한) Sails.js에서 MongoDB의 통합을위한 작업 템플릿입니다 :

aggreagation에 대한
User.native(function(err, collection) { 
    if (err) return res.serverError(err); 

    collection.aggregate(
     [ 
     //Your matching and grouping here 
     //{ $match : { country : user.country } }, 
     //{ $group: { _id: "$age", count: { $sum: 1 } } } 
     ], function(err, result){ 
      if (err) return res.serverError(err); 
      console.log(result); 
     } 
    ); 
); 

더 : 당신이 찾을 수 있습니까 http://docs.mongodb.org/manual/tutorial/aggregation-with-user-preference-data/

+1

에 대한 참조를 찾지 못했습니다. 코드에 누락 된 **} **이 있습니다. 마지막은 다음과 같습니다.'}) ;});' – aleix