为什么名为“blog”的数据库不允许插入记录并且不会返回错误,为什么名为“blogs”的数据库允许插入记录并返回错误?
<小时/>我花了几个小时检查所有代码,认为我做错了什么。我已经编写了许多 Mongoose 连接的应用程序,但是当使用以下内容时,它会返回成功,但不会插入记录,并且不会返回任何错误,说明原因:
mongooose.connect('mongodb://localhost:27017/blog');
在用头撞墙一段时间后,我决定更改数据库名称:
mongooose.connect('mongodb://localhost:27017/blogs');
它有效!但为什么这个命名约定很重要呢?我在 MongoDB 的文档中找不到任何内容或Mongoosejs .
最佳答案
所以我相当确定 mongodb 不关心数据库名称“blog”与“blogs”。但是,请注意, Mongoose 具有一个可疑的有用功能,即在数据库连接尚未建立时默默地排队操作,然后在数据库连接准备就绪时将其关闭。这可能会让你感到困惑。要测试该理论,请将回调传递给 mongoose.connect
并将 console.log
放入回调中,以便您准确知道连接何时准备就绪。
关于node.js - Mongoose 中的集合名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18219186/