Nodejs 使用 mongoose 操作 mongodb, 如何在不定义 Schema 的情况下做 CRUD 操作?
Nodejs 使用 mongoose 操作 mongodb, 如何在不定义 Schema 的情况下做 CRUD 操作?
null
可以使用 mongoose 依赖的 node-mongodb-native,例如:<br>const mongoose = require('mongoose');<br>const conn = mongoose.createConnection('mongodb://localhost:27017/dbname');<br><br>const collection = conn.collection('users');<br>collection.find({}).toArray((err, users) => {console.log(users)});<br>
mongoose mongodb 教程看看 https://www.itying.com/goods-946.html
在 Node.js 中使用 Mongoose 操作 MongoDB 时,通常我们会先定义一个 Schema 来描述数据的结构。然而,Mongoose 也支持使用 mongoose.connection.db
直接对 MongoDB 进行原生操作,从而在不定义 Schema 的情况下执行 CRUD 操作。
以下是一个简单的示例,展示如何在不定义 Schema 的情况下使用 Mongoose 进行 CRUD 操作:
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/mydatabase', { useNewUrlParser: true, useUnifiedTopology: true });
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', async () => {
console.log('Connected to MongoDB');
// 插入数据 (Create)
await db.collection('mycollection').insertOne({ name: 'Alice', age: 25 });
// 查询数据 (Read)
const docs = await db.collection('mycollection').find({}).toArray();
console.log(docs);
// 更新数据 (Update)
await db.collection('mycollection').updateOne({ name: 'Alice' }, { $set: { age: 26 } });
// 删除数据 (Delete)
await db.collection('mycollection').deleteOne({ name: 'Alice' });
mongoose.connection.close();
});
在这个示例中,我们直接通过 db.collection('mycollection')
获取集合对象,并使用其提供的 insertOne
、find
、updateOne
和 deleteOne
方法进行 CRUD 操作。这种方式绕过了 Schema 的定义,但请注意,这样做会失去 Mongoose 提供的许多强大功能,如类型验证、自动时间戳等。