来自 Mongoose 的 Model.create() 不会将文档保存在我的 Collection 中

Model.create() from Mongoose doesn´t save the Documents in my Collection

我创建了一个带有模式和模型的单一应用程序来创建 Collection 并插入一些文档。

我有我的 todoModel.js 文件:

const mongoose = require("mongoose");
const Schema = mongoose.Schema;

const todoSchema = new Schema({
username: String,
todo: String,
isDone: Boolean,
hasAttachment: Boolean
});
const Todos = mongoose.model("Todo", todoSchema);
module.exports = Todos;

然后我用我的文档样本创建了一个 setUpController.js 文件。然后我创建一个模型并传递我的文档样本和我的架构。我创建了一个响应以在 JSON 中发送 tje 结果。 这里的一切都很好,因为我在访问路线时在 json 中得到了结果。

代码如下:

        Todos.create(sampleTodos, (err, results) => {

        if (!err) {
            console.log("setupTodos sample CREATED!")
            res.send(results);
        }
        else {
            console.log(`Could not create the setupTodos Database sample, err: ${err}`);
        }
        });

我的问题是此文档没有保存在 collection 中!!当我访问数据库时,那里什么也没有。

这是我的 app.js 文件:

mongoose.connect("mongodb://localhost:27017/nodeTodo")
.then(connection => {
    app.listen(port);
    
})
.catch(err => {
    console.log(`Could not establish Connection with err: ${err}`);
});

有人可以帮我吗?

谢谢

您不能在不创建对象实例的情况下直接使用对象。 尝试创建一个实例并调用相应的函数 instance.In 你的情况,创建实例后保存文档,它就像一个魅力。

const newTodos = new Todos({
username: "username",
todo: "todos",
isDone: false,
hasAttachment: flase
});

const createdTodo = newTodos.save((err, todo) => {
if(err) {
throw(err);
}
else {
//do your staff
}
})

创建集合后,您可以使用函数 inserMany 插入单个文档,该函数接收一个对象数组并自动将其保存到给定的集合中

示例:

  Pet = new mongoose.model("pet",schemas.petSchema)
  Pet.insetMany([
    {
      //your document
    }])

它只会保存一个硬编码文档

希望对您有所帮助