从mongo中查数据更新mysql_MongoDB 查找、更新、模糊查找等

MongoDB作为文档型非关系数据库,和Oracle、Mysql等关系型数据库类似,被认为是最像关系型数据库的非关系型数据库。当然,也有不同的地方,比如关系型数据库的‘数据表’,在MongoDB里叫做‘数据集合’,关系型数据库数据表里的每行数据,在MongoDB里是一个个的数据文档,也因此MongoDB被称为文档型数据库。以下是在日常代码过程中用到的 MongoDB 常用操作:

首先,以引入 UserModel 为例:

const UserModel = require('../models/user')

模糊查找:

await UserModel.find({ username: { $regex: keyword } })

注: 查找 UserModel 里,username 包含 keyword 的所有文档。

向集合中插入数据:

方法一:

let userEntity = newUserModel({ username, password, telnumber });let userInfo = await userEntity.save();

注: UserModel 为数据模型, 包含username、 password、 telnumber  三个字段

方法二:

const userInfo = await UserModel.create(newUserInfo);

注: newUserInfo 为对象, 包含 username、 password、 telnumber  三个属性。

更新单个文档:

方法一:

UserModel.udpateOne({ _id: userInfo._id }, { username, telnumber });//username、telnumber 为新的值

方法二:

await UserModel.findOneAndUpdate({ username: '张三' }, { $set: { telnumber: '1234567890' } });

注: 将张三的手机号更新为:1234567890

批量更新文档:

将用户集合中所有 telnumber 字段为空的文档, telnumber 更新为  '1234567890' :

UserModel.updateMany({ telnumber: '' }, { $set: { telnumber: '1234567890' } })

查询集合中的第一条插入的数据:

UserModel.find({}).limit(1) //方法一: find({})

UserModel.findOne({})//方法二: findOne({})查询第一条数据

查询集合中的最后一条插入的插入数据:

UserModel.find({}).sort({_id: -1}).limit(1) //_id为插入文档时自带的字段,具有时间排序性

删除单个文档:

方法一:

UserModel.findOneAndDelete({ username: '张三' })

方法二:

UserModel.deleteOne({ username: '张三' })

注: 删除用户名为 张三 的文档。

同时删除多个文档:

其中,Tel = ['123', '456', '789']

await UserModel.deleteMany({ Tel })

注: 同时删除 UserModel 里, Tel 为 123, 456, 789 的文档。

计算find({})返回的文档个数:

let result = UserModel.find({}).countDocuments() //.countDocuments() 返回总文档数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值