Node MongoDB

本文介绍了使用Mongoose连接MongoDB数据库的方法,包括创建规则、集合、文档,以及保存文档。还详细说明了查询操作,如按属性、范围、指定字段查询,排序、分页查询等。此外,也提及了删除和更新文档的操作,涵盖单个和多个文档的处理。

连接数据库

const mongoose = require("mongoose");

mongoose.connect("mongodb://localhost/db530")
        .then(()=>{console.log("connect success")})
        .catch(err=>console.log(err,"connect fail"));

创建规则

const courseSchema = new mongoose.Schema({
    name:String,
    id:Number
})

使用规则创建集合

const Course = mongoose.model('Course',courseSchema);

使用集合创建文档

const course = new Course({
    name:"Asia",
    id:13
})

保存文档

course.save();

create方法创建并添加文档

 Course.create({
    name:"BBB",
    id:12
}).then(result=>{
    console.log(result);
}).catch(err=>{
    console.log(err);
})

查询

find()无参数默认查询所有,返回文档的集合

 Course.find()
    .then(result=>{
        console.log(result);
    })

 按属性查询

Course.find({id:12})
.then(data=>console.log(data));

findOne()只返回一条数据,即为find方法返回数组的第一条

Course.findOne({id:12})
.then(data=>console.log(data)); 

find()范围查询

Course.find({id:{$gt:10,$lt:20}})
.then(data=>{console.log(data)})

 find()查询指定字段

Course.find()
.select('name id')
.then(data=>{console.log(data)});

find().sort()按照指定字段排序查询结果,升序排列

 Course.find()
.sort("id")
.then(data=>console.log(data));

降序排列

  Course.find()
.sort("-id")
.then(data=>console.log(data));

find().skip(2)跳过两条数据

find().limit(3)只查询3条 

删除文档

删除单个

findOneAndDelete({id:1})

删除多个

deleteMany({})//删除所有 

更新文档

updateOne({查询条件},{要修改的值}) 

updateMany({查询条件},{要修改的值}) 

<think>好的,我需要帮助用户找到关于Node.js与MongoDB交互的API文档或教程。首先,我应该回忆用户提供的参考引用,看看有没有相关的信息。引用[1]提到MongoDB shell的使用,可以添加用户和查询数据,这可能与连接配置有关。引用[2]是关于Mongoose的代码片段,说明用户可能在使用Mongoose库。引用[3]是Node.js和Spring框架的比较,可能不太相关。 用户需要的是Node.js与MongoDB交互的文档或教程。我应该先考虑官方的MongoDB Node.js驱动文档,这是最权威的来源。然后,Mongoose作为流行的ODM库,也有详细的文档和教程,用户提供的引用[2]中的代码示例可能来自那里。此外,社区教程如MongoDB University、MDN或者freeCodeCamp也可能有帮助。 接下来需要整理这些资源的结构,分点列出,每个部分包括官方文档、Mongoose指南、社区教程、最佳实践和常见问题。同时,确保按照用户的要求使用正确的中文回答,并添加相关问题。需要检查是否有遗漏的资源,比如官方快速入门指南或者视频教程,这些对用户可能有用。最后,生成的相关问题应该围绕安装、连接、性能优化等方面,确保覆盖用户可能遇到的后续疑问。</think>### Node.js与MongoDB交互的API文档与教程 #### 1. **官方文档** - **MongoDB Node.js驱动文档** 官方提供完整的API说明和示例代码,涵盖连接数据库、CRUD操作、索引管理等核心功能。 链接:[MongoDB Node.js Driver Documentation](https://www.mongodb.com/docs/drivers/node/current/) 包含连接配置、事务处理等进阶内容,适合深入开发[^1]。 - **Mongoose ODM文档** 若使用Mongoose库(基于MongoDB驱动的对象建模工具),其文档详细说明模式定义、数据验证、中间件等特性。 链接:[Mongoose官方指南](https://mongoosejs.com/docs/guide.html) 示例代码(如用户提供的引用[2])可直接参考其Schema和模型定义部分。 #### 2. **入门教程** - **MongoDB官方快速入门** 教程分步演示Node.js连接MongoDB、插入/查询数据的流程: ```javascript const { MongoClient } = require('mongodb'); const client = new MongoClient('mongodb://localhost:27017'); async function run() { await client.connect(); const db = client.db('test'); const collection = db.collection('users'); await collection.insertOne({ name: 'Alice' }); } ``` 完整步骤:[Node.js Quick Start](https://www.mongodb.com/docs/drivers/node/current/quick-start/) - **MDN Web文档** Mozilla开发者网络提供MongoDBNode.js整合的实践指南,包含异步操作处理和错误捕获技巧。 #### 3. **视频教程与课程** - **MongoDB University免费课程** 课程《MONGODB NODE.JS DEVELOPER PATH》涵盖从基础到聚合框架的应用,适合系统学习。 - **YouTube频道推荐** 搜索关键词“Node.js MongoDB CRUD Tutorial”,可找到手把手实操视频(如freeCodeCamp频道的3小时完整项目)。 #### 4. **最佳实践** - **连接池管理** 使用`client.connect()`时默认启用连接池,需根据负载调整`poolSize`参数[^1]。 - **性能优化** 通过投影(Projection)减少查询返回字段,结合索引提升查询效率。 #### 5. **常见问题** - **ObjectId处理** MongoDB的`_id`字段需用`require('mongodb').ObjectId`转换,或通过Mongoose的`Schema.Types.ObjectId`定义[^2]。 - **时间字段格式** 建议使用ISO日期字符串或`new Date()`存储时间戳,避免时区问题。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值