Using insertOne() in Mongoose
Jul 5, 2022
Mongoose models do not have an insertOne() method, you should use the create() function instead.
const mongoose = require('mongoose'); const schema = new mongoose.Schema({ name: String }); const TestModel = mongoose.model('Test', schema); async function run() { await mongoose.connect('mongodb://localhost:27017'); await TestModel.create({ name: 'Test Testerson' }); } run(); If you are adamant about using insertOne(), you will need to call the function on the collection itself:
const mongoose = require('mongoose'); const schema = new mongoose.Schema({ name: String }); const TestModel = mongoose.model('Test', schema); async function run() { await mongoose.connect('mongodb://localhost:27017'); await TestModel.collection.insertOne({ name: 'Test Testerson' }); } run(); Note: All methods on TestModel.collection bypass Mongoose entirely. So TestModel.collection.insertOne() bypasses schema validation, middleware, getters/setters, and all other Mongoose features.
Want to become your team's MongoDB expert? "Mastering Mongoose" distills 8 years of hard-earned lessons building Mongoose apps at scale into 153 pages. That means you can learn what you need to know to build production-ready full-stack apps with Node.js and MongoDB in a few days. Get your copy!
Did you find this tutorial useful? Say thanks by starring our repo on GitHub!