aggregate
を使用していますが、TypeError: users.aggregate is not a function
を使用してコレクションをクエリしようとしています。ここに私のコードは次のとおりです(合わせて縮小)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;
私はMongoDBのバージョン3.2を実行しています.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