mongoose基本增删改查
时间: 2023-09-01 10:09:45 浏览: 112
对于基本的增删改查操作,使用mongoose可以按照以下步骤进行:
1. 定义数据模式Schema:在定义数据模式时使用mongoose.Schema来创建一个新的模式对象。可以通过指定字段名称和类型来定义模式的属性,例如:
```javascript
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
const NewsSchema = new Schema({
name: {type: String},
age: {type: Number},
sex: {type: String, required: [true, '请选择性别']}
});
```
2. 定义数据模型Model:通过mongoose.model来创建一个新的模型对象,参数1为模型的名称,参数2为使用的模式对象,参数3为集合名称。例如:
```javascript
const UserModel = mongoose.model('User', NewsSchema, 'user');
```
3. 增加数据:使用模型对象的create方法来创建一个新的文档,并将其保存到数据库中。例如:
```javascript
UserModel.create({name: 'John', age: 25, sex: 'Male'}, (err, doc) => {
if(err) {
console.log(err);
} else {
console.log(doc);
}
});
```
4. 查询数据:使用模型对象的find方法来查询符合条件的文档。例如:
```javascript
UserModel.find({name: 'John'}, (err, docs) => {
if(err) {
console.log(err);
} else {
console.log(docs);
}
});
```
5. 更新数据:使用模型对象的updateOne或updateMany方法来更新符合条件的文档。例如:
```javascript
UserModel.updateOne({name: 'John'}, {age: 30}, (err, result) => {
if (err) {
console.log(err);
} else {
console.log(result);
}
});
```
6. 删除数据:使用模型对象的deleteOne或deleteMany方法来删除符合条件的文档。例如:
```javascript
UserModel.deleteOne({name: 'John'}, (err) => {
if (err) {
console.log(err);
} else {
console.log('删除成功');
}
});
```
以上是使用mongoose进行基本增删改查的步骤。可以根据具体的需求和条件进行相应的操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [mongoose实现增删改查](https://blog.csdn.net/qq_44747461/article/details/121178662)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
- *2* [eggjs实战(5)——eggjs+mongoose(egg-mongoose)增删改查技巧](https://blog.csdn.net/zjsj_lize/article/details/120938407)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文