aggregate
을 사용하고 있지만 TypeError: users.aggregate is not a function
을 사용하여 콜렉션을 쿼리하려고합니다. 내가 MongoDB의 버전 3.2을 실행하는거야MongoDB - TypeError : users.aggregate가 함수가 아닙니다.
./app.js (에 맞게 감소)
var express = require('express');
var mongo = require('mongodb');
var monk = require('monk');
var db = monk('localhost:27017/mydb');
var users = require('./routes/users');
var app = express();
app.use(function(req, res, next) {
req.db = db;
next();
});
app.use('/users', users);
module.exports = app;
./routes/users.js
var express = require('express');
var router = express.Router();
router.get('/test', function(req, res) {
var users = req.db.get('users');
users.aggregate([{ $match: { username: 'test0' }}], function(err, data) {
res.json(data);
});
});
module.exports = router;
: 여기에 내 코드입니다 .10 위의 쿼리는 콘솔에서 정상적으로 작동합니다. 나는 해결책을 찾아 보았고 이미 모두 완료 한 MongoDB 버전을 확인하기를 제안했다. 나도 다른 게시물에서 제안한대로 req.db.collection('users').aggregate
을 시도했으며 비슷한 오류 메시지가 나타납니다 : req.db.collection is not a function
. 내가 뭘 놓치고 있니?
편집 : users.find({ username: 'test0' }, func...
을 실행하면 올바른 데이터가 반환됩니다.
EDIT2 : 추가 코드가 추가되었습니다.
어디에서'req.db.get'? 너 그거 내보내는거야? –
mongodb에 연결하기 위해 어떤 라이브러리를 사용하고 있습니까? – QoP
@QoP 스님을 사용 중입니다 – TestWell