介绍:
push添加指定的值到数组中,具体的可以参考官方文档:
https://docs.mongodb.com/manual/reference/operator/update/push/
这里我介绍的是与group配合使用,获取除分组字段外其他的字段信息;我这里是对字段"lpno"进行分组将字段"code",“name”,"alisasName"的信息放到一起,获取数据。
db.getCollection("TURBINE").aggregate([
"$group":{"_id":"$lpno",
"total":{
"$push":"$code"
"name":{
"$push":"$name"
"alineName":{
"$push":"$alisasName"
"$sort":{"_id":1}
]).pretty()
java中group与push配合使用:
List<AggregationOperation> operations = new ArrayList<>();
operations.add(Aggregation.group("lpno").push("name").as("name").push("alisasName").as("alisasName").count().as("TOTAL"));
--------------------------------------------------
2021.05.28 记录一下数据库多级目录的新增和修改
数据库中数据结构:
"_id":"56781afafa",
"tags":[
"_id":"1111",
"name":"涡轮"
"_id":"2222",
"name":"主控"
对tags里面的数据进行添加
"tagsList"是先查出数据库中存在的tags,再将新增数据add进去。
Query query = Query.query(Criteria.where("_id").is(id));
Update update = new Update();
update.set("tags",tagsList);
mongoTemplate.upsert(query,update,tableName);
对tags里面的数据进行修改,tags是修改的数据
Query query = Query.query(Criteria.where("_id").is(id).and(tags._id).is(childId));
Update update = new Update();
update.set("tags.$",tags);
mongoTemplate.updateFirst(query,update,tableName);
对tags里面的数据进行删除,
Query query = Query.query(Criteria.where(tags._id).is(childId));
Update update = new Update();
Document doc = new Document();
doc.put("_id",childId);
update.pull("tags",doc);
mongoTemplate.updateMulti(query,update,tableName);
新开发的项目数据库是使用MongoDB,关于MongoDB的查询网上也有很多,在这里做一个学习、记录,后续会持续更新。欢迎留言交流~1. 多表联合查询SQL实现db.AA_Student.aggregate([ { "$lookup":{ "from":"AA_Score", // 从表表名 "localField":"code", // 查询主表的关联字段 "foreignField":"studentCode",
开发了一个门户网站,用于进行基于多项选择的在线考试。 为三种类型的用户提供支持; 应试者,应聘者和管理员。 已使用Advanced Java和NOSQL数据库MongoDB实现
在线考试门户
$group进行分布查询操作。这个有点类似于我们在 SQL 中的 group by 语法,但是这个可以操作的内容多一些。
官方地址:https://docs.mongodb.com/manual/reference/operator/aggregation/group/index.html
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.0.4</version>
</dependency>
1.模糊查询like
String keyword
MongoClient mongoClient = new MongoClient("localhost", 27017);
MongoDatabase database = mongoClient.getDatabase("yourDatabaseName");
MongoCollection<Document> collection = database.getCollection("yourCollectionName");
Document query = new Document("yourFieldName", "yourValue");
FindIterable<Document> result = collection.find(query);
for (Document doc : result) {
System.out.println(doc.toJson());
其中,"yourDatabaseName"是你的数据库名称,"yourCollectionName"是你的集合名称,"yourFieldName"是你要查询的字段名称,"yourValue"是你要查询的字段值。