mongodb
1、建表
1.1、在实体类上加注解
@Document(collection = "t_表名")
1.2、Dao上加注解
@Repository
@MongoDbCol("库名")
public class TestDao extends BaseMongoDaoImpl<实体类名>
1.3、插入第一条数据创建表
mongoTemplate.insert(entityObject)
2、常用语法(JAVA)
2.1、关联查询
currentPage = (currentPage == null || currentPage < 1) ? 1 : currentPage;
pageSize = (pageSize == null || pageSize < 1) ? 10 : pageSize;
//查询条件
Criteria criteria = Criteria.where("数据库字段名").is("条件");
AggregationOperation match = Aggregation.match(criteria);
List<AggregationOperation> operations = new ArrayList<>();
//关联表名,主表字段,关联表字段,别名
operations.add(Aggregation.lookup("关联表名", "主表字段", "关联表字段", "别名"));
//过滤条件
operations.add(match);
//分页
operations.add(Aggregation.skip((currentPage - 1) * pageSize));
operations.add(Aggregation.limit(pageSize));
//排序,可加多个
operations.add(Aggregation.sort(new Sort(Sort.Direction.DESC, "_id")));
//选择要返回的字段
operations.add(Aggregation.project("userId", "role", "grade", "userName", "adAccount", "sap", "roleName", "mainActivity"));
Aggregation aggregation = Aggregation.newAggregation(operations);
AggregationResults<LePaoActivityRelevanceVO> results = mongoTemplate.aggregate(aggregation, "查询的主表", "主表实体类".class);
3、常用语法(mongdb库)
3.1、修改
db.t_LePaoActivity.update(
{'_id':ObjectId("61283c91d9d9322ae280e335")},
{"$set" :
{"updateNumber":0,
"status":"2",
"isChallengeSuccess":"1",
"isPkChallengeSuccess":"1" }
}
)
3.2、查询
db.t_CodoonRoute.find({$and: [{"start_time":{$gt: ISODate("2021-09-01T00:00:00Z")}},{"end_time":{$lt: ISODate("2021-09-02T00:00:00Z")}},{departmentNo:"50917978"}]})
.projection({})
.sort({_id:-1})
.limit(100)
多表联查
db.t_CompanyCelebrateApply.aggregate([
{$lookup:
{
from: "t_User",
localField: "vkUserId",
foreignField: "userId",
as: "userInfo"
}
},
{ $match : {"is_sign_up" :true ,"userInfo":{$exists:true}}},
{ $group: { _id: "$userInfo.gender", count: { $sum: 1 },last:{ $last: "$userInfo.gender"} } }
])