Node.js 为什么我';我在使用数据库中不存在的表?

Node.js 为什么我';我在使用数据库中不存在的表?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我的模型有一些问题,所以我登录到服务器以检查运行在那里的mongdb实例。。。但是它说我的桌子不存在 Mongo控制台: > use testdb switched to db testdb > show collections system.indexes 以及我的申请: 连接: module.exports = { 'database': 'mongodb://username:password@host:27017/testdb' }; 型号: module.exp

我的模型有一些问题,所以我登录到服务器以检查运行在那里的mongdb实例。。。但是它说我的桌子不存在

Mongo控制台:

> use testdb
switched to db testdb
> show collections
system.indexes
以及我的申请:

连接:

module.exports = {
    'database': 'mongodb://username:password@host:27017/testdb'
};
型号:

module.exports = mongoose.model('User', new Schema({ 
    username: String, 
}));
正在添加用户:

var nick = new User({
    username: "Nick",
}).save(function (err, userObject) {

    if (err) {
        return res.json({ "success": false, "error2 ": err });
    } else {
        res.json({ "success": true, "msg": "user created" });
    }
});
列出用户:

app.get('/users', function(req, res) {

    User.find(function(err, users) {
        res.json(users);
    });
});
输出:

[
  {
    "_id": "56577d259bef807424cd98eb",
    "__v": 0
  },
  ...
]

所以有些东西被写入数据库,有些东西被读取。。。但是没有桌子。对不起,我是MongoDB的新手,有人能解释一下吗?我已经检查了admin和本地db,但那里也没有用户表。

上面的代码都没有在集合中插入任何内容,因此当您“找到”它时,不会返回任何内容
mongoose.model
只告诉js应用程序数据的模式。如果您跳入MongoDB控制台并进行一些插入以获取其中的一些数据,然后运行此操作,您将得到结果。您还可以从mongoose生成一些插入,或者通过从cli执行mongoimport来生成一些数据。此外,您还可以通过显式创建将数据插入到不存在的MongoDB集合中。MongoDB将负责在
\u id
@doicomehereoften1上创建集合和索引。我在其中添加了一个用户(dummy)。我一直在使用它,所以你还没有给我们一个完全可复制的例子。也就是说,你提供的东西让我相信你仍然没有插入任何东西。查看Mongoose文档中的
exec
。当您将mongoose“query ish”类型的操作分配给变量时,它不会立即执行,从而允许您在JS的后续步骤中构建更大的操作<代码>尼克就是这样一个例子。运行
nick.exec()
实际上应该触发
save()
运行。