一、采用Node.js对Mongodb中的数据进行查询
查询格式为:
表名.find({
字段名:数据
})
例如:
OrderReceive.find({
state:"待审核"
})
如果不声明字段则返回全部数据例如
OrderReceive.find()
查询完成后会返回满足查询要求的整条数据:
因此查询通常与const一起使用
例如:
const result = await OrderReceive.find({
state:"待审核"
})
result就是查询到的数据
在find后可以接sort对查询到的数据进行排序
格式为:
表面.find({
查询条件
}).sort({
排序字段:-1(-1是倒序,1是正序)
})
例如:
const result = await OrderReceive.find({
state:"通过"
}).sort({
orderNumber:-1
})
上述代码的意思是查询OrderReceive数据表中字段state是“通过”的所有数据并将这些数据按照orderNumber的大小进行倒序排列,随后赋给常量result
二、对Mongodb中的数据进行修改
对Mongodb数据库中的数据进行修改的函数通常使用findByIdAndUpdate()
具体格式为:
表面.findByIdAndUpdate(_id,{
字段名:修改的参数
})
例如将数据库中state从待审核改为审核:
OrderReceive.findByIdAndUpdate(_id,{
state:'审核',
}),
上述的_id是Mongodb数据库中每条数据的一个唯一标识,由数据库自动生成
三、对数据库中的数据进行删除
对Mongodb数据库中的数据进行删除,采用findByIdAndDelete()
格式:
表面.findByIdAndDelete(_id)
例如:
await OrderReceive.findByIdAndDelete("64d3aa57380e883755c3ec52")
四、Mongodb数据库聚合操作
如果想要对数据库中的表进行连续有关联的增删改查或者想进行部分运算操作,就需要进行聚合操作,采用aggregate([])进行聚合操作
格式:
表面.aggregate([
{
聚合操作1
},
{
聚合操作2
}
])
例如:
const result = await Orders.aggregate([
{
$match:{
state:'已完成',
ReceviceOpenid,
}},
{
$group:{
_id:'',
totalmoney:{
$sum:'$money'
}
},
}
]);
其中$match是条件过滤结合操作,$group是分组聚合操作(主要用这个进行计算)其中_id:''是指对所有的表进行操作,如果_id中指定了明确的id就只对该id对应的数据表进行操作
$sum是求和,$money是指数据表中的money字段
详细可见视频:
精通MongoDB 08-聚合查询_哔哩哔哩_bilibili
精通MongoDB 09-实验:聚合查询_哔哩哔哩_bilibili
五、计数
如果想要统计满足条件的数据条数可以采用countDocuments()进行统计
格式:
表面.countDocuments({
搜索条件,
})
例如:
const result = await Orders.countDocuments({
ReceviceOpenid,
state:'已完成'
})