【问题标题】:What is mongoose actually opening here?猫鼬在这里实际打开了什么?
【发布时间】:2015-12-31 03:34:42
【问题描述】:

我正处于学习 MEAN 堆栈的初始阶段。

我使用 mongoose 和 mongodb 创建了我的第一个 Node 应用程序。

在我的 node.js 代码中,我有以下内容:

mongoose.connect('mongodb://localhost/meantest1');

我可以创建文档并找到它们,但是,我不完全确定它在哪里存储数据?

app.get('/api/test', function (req, res) {
    test.create({
        name: "Joe Schmo"
    }, function() {
        test.find(function (err, tests) {
            res.json(tests);
        })
    });
})

在 mongo shell 中,如果我执行

use meantest1
db.test.find()

它返回我在 shell 中输入的数据,但没有来自我的应用程序。

有人能解释一下这里发生了什么吗?

另外,有没有比shell更好的查询mongo的app??

【问题讨论】:

  • Mongoose 将你的收藏名称复数化,除非你明确地给它一个名字。试试db.tests.find()
  • 就是这样!发布为答案,我会这样标记。谢谢!

标签: mongodb mongoose mean-stack


【解决方案1】:

当您注册模型时,Mongoose 会自动将集合名称复数。在您的情况下,Test 的模型名称将转换为 tests 的集合名称。

如果您想防止复数,或者您需要将模型附加到未复数的现有集合,您可以将集合名称作为第三个参数传递给 mongoose.model 方法:

mongoose.model('Test', testSchema, 'test');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-03
    • 2023-01-26
    • 2015-02-21
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 1970-01-01
    相关资源
    最近更新 更多