2011-11-17 4 views
0

함수를 기반으로 정렬하려고합니다. 현재 다음과 같은 작업을하고 있으며 작동합니다.몽구스 (mongodb + node.js)를 사용한 서버 측 정렬

var _criteria = ... some search criteria 
var _pageNumber = ... the page num I want to see 
var _nPerPage = ... the number of documents per page 
var _sort = {}; 
_sort.name = ... the column name I am sorting on 
_sort.order = ... asc or desc sort 

Collection.find(_criteria) 
    .skip((_pageNumber-1)*_nPerPage) 
    .limit(_nPerPage) 
    .sort(_sort.name,_sort.order) 
    .execFind(function (err, docs) { 
... 
}); 

는 지금은 사용자 입력에 걸리는 일부 기능에 따라 정렬 싶습니다

var sortFunc = function(x){ return (x - doc.score); }; 
// where doc.score is an attribute of the document I am searching on 
// and x is a user provided value 

내가 할 수있는 방법을 찾을 수 없습니다. 나는 다음과 같이이 기능을 평가 후면 시도 :

var mongoose = require('mongoose'); 
var mdb = mongoose.connect(uri); 
var myfunc = function(x){ return x; }; 
mdb.connection.db.eval(myfunc, "asdf", function (err, retval) { 
    console.log('err: '+err); 
    console.log('retval: '+retval); 
}); 

을하지만, 나는 다음과 같은 오류 얻을 : 이것에

err: Error: eval failed: db assertion failure 
retval: null 

어떤 도움이 좋지 않을까합니다. 이것은 내 PC에서 작업 할 수

var mongoose = require('mongoose'); 
mongoose.connect(uri); 
mongoose.connection.on("open", function(err){ 
    mongoose.connection.db.eval("function(x){ return x; }", "asdf", function (err, retval) { 
     console.log('err: '+err); 
     console.log('retval: '+retval); 
    }); 
}); 

: 덕분에 많은

답변

1

난 당신이 이렇게 할 필요가 있다고 생각합니다. 연결이 가능한지 확인해야합니다.

관련 문제