javascript - MongoDB - TypeError : users. 聚合不是函数

标签 javascript node.js mongodb express

我尝试使用aggregate 查询集合,但收到TypeError: users.aggregate is not a function。这是我的代码:

./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/user.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 不是函数。我错过了什么?

编辑: 运行 users.find({ username: 'test0' }, func... 有效并返回正确的数据。

EDIT2:添加了更多代码。

最佳答案

你可以这样做。

var app = require('express')();
var expressMongoDb = require('express-mongo-db');

app.use(expressMongoDb('mongodb://localhost/test'));

app.get('/', function (req, res, next) {
  req.db // => Db object
});

关于javascript - MongoDB - TypeError : users. 聚合不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40353037/

相关文章:

JavaScript toString 限制

node.js - React Stripe - 如何保存信用卡信息?

javascript - 如何使用 httpwebrequest 在 C# 中获取网页(使用 ajax/javascript 的 php)的最终响应

node.js - 我需要 MongoDB 在执行其他操作之前等待预删除 Hook

javascript - 为什么下面的代码总是在立即之前打印超时?

asp.net - Node Js - Mongo 动态查询字符串数组

mongodb - mongo 查询中的字段值是否有长度限制?

mongodb - 子进程/usr/bin/dpkg 返回错误代码 (1)

javascript - 如何使用 node.js 创建一个 ActiveXObject?

javascript - jsdom.env 不适用于 node.js C9