实践mongoose查询总结
-----Model.find----Model.find(query, fields, options, callback)
// fields 和 options 都是可选参数Model.find({ 'csser.com': 5 }, function (err, docs) { // docs 是查询的结果数组 });
Model.find({}, ['first', 'last'], function (err, docs) {
// docs 此时只包含文档的部分键值
})
-----Model.findOne------与 Model.find 相同,但只返回单个文档
Model.findOne({ age: 5}, function (err, doc){
// doc 是单个文档
});
------Model.findById------与 findOne 相同,但它接收文档的 _id 作为参数,返回单个文档。_id 可以是字符串或 ObjectId 对象。Model.findById(obj._id, function (err, doc){
// doc 是单个文档
});
------- Model.count -------返回符合条件的文档数。Model.count(conditions, callback);
Adventure.count({ type: 'jungle' }, function (err, count) {});
【实践mongoose查询总结】findOneAndUpdate
// 跟新单个应用
export function findContentAndUpdate(obj: any) {
const params = obj;
//_id也可以不转,因为查询自行做了处理。(亲测)
params._id = mongoose.Types.ObjectId(obj._id);
return DepartmentContent.findOneAndUpdate({_id: params._id}, {...params});
}
findByIdAndUpdate
_id可以是字符串 可以是ObjectId。
存进数据库的时候_id也可以是字符串,存储中会自行转为了ObjectId
letinfo = DepartmentContent.findByIdAndUpdate(obj._id, {...obj});
//info返回的是未更新前对象
//模糊查询// 根据角色名称查找用户
export function findRoles(name: string) {
const reg = new RegExp(name, 'i');
// 不区分大小写
return GuideRole.find({name: {$regex : reg}}). {sort : { _id : -1 };
//倒叙
}
//MongoDB,匹配数组交集的查询方式。db.getCollection('table').find({
'_org':{
'$in':
['D001', 'A002']
}如上,查询的是,_org字段是数组,与['D001', 'A002']数组的交集如果存在就是符合条件。
//查找并跟新addToSet往数组里面push 如果存在就不push
db.departments.update(
{code:{$in:['strategicDevelopment','notCarStrategy']}},{$addToSet:{'roleList':'serviceOperations'}},
{multi:true})
待进行,持续总结
官网查询
https://www.mmxiaowu.com/article/584821bcd4352863efb5545e
推荐阅读
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- mybatisplus如何在xml的连表查询中使用queryWrapper
- mybatisplus|mybatisplus where QueryWrapper加括号嵌套查询方式
- MybatisPlus使用queryWrapper如何实现复杂查询
- 不废话,代码实践带你掌握|不废话,代码实践带你掌握 强缓存、协商缓存!
- 六项精进20180530
- 数据库|SQL行转列方式优化查询性能实践
- 【Day31课后实践】
- neo4j|neo4j cql语句 快速查询手册
- 2021—3—8日教练实践总结&呼吸练习&觉察日记