|
@@ -1,11 +1,18 @@
|
|
|
package com.zcxk.core.mongo.base;
|
|
|
|
|
|
+import com.mongodb.client.MongoCollection;
|
|
|
+import com.mongodb.client.model.Filters;
|
|
|
+import com.mongodb.client.model.UpdateOptions;
|
|
|
+import com.mongodb.client.model.Updates;
|
|
|
import com.mongodb.client.result.DeleteResult;
|
|
|
import com.mongodb.client.result.UpdateResult;
|
|
|
import com.zcxk.core.common.pojo.PageResult;
|
|
|
import com.zcxk.core.mongo.annotation.QueryField;
|
|
|
import com.zcxk.core.mongo.pageing.Page;
|
|
|
+import com.zcxk.core.mongo.utils.StringUtil;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.bson.Document;
|
|
|
+import org.bson.conversions.Bson;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.domain.Pageable;
|
|
|
import org.springframework.data.domain.Sort;
|
|
@@ -72,6 +79,17 @@ public class BaseDao<T, PK extends Serializable> {
|
|
|
return mongoTemplate.upsert(query, update, entityClass);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ public UpdateResult updateOne(Bson filters, List<Bson> arrayFilters, Bson update) {
|
|
|
+
|
|
|
+ UpdateOptions updateOptions = new UpdateOptions().arrayFilters(arrayFilters);
|
|
|
+
|
|
|
+ MongoCollection<Document> collection = mongoTemplate.getDb().getCollection(mongoTemplate.getCollectionName(this.entityClass));
|
|
|
+
|
|
|
+ return collection.updateOne(filters,update,updateOptions);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
public UpdateResult updateById(PK id, Update update) {
|
|
|
Query query = Query.query(Criteria.where(ID_FIELD).is(id));
|
|
|
return update(query, update, true);
|
|
@@ -228,7 +246,7 @@ public class BaseDao<T, PK extends Serializable> {
|
|
|
* @param unwind:需要拆开的子文档
|
|
|
* @param unwindCriteria :子文档查询,
|
|
|
* @param groupOperation : 分组查询
|
|
|
- * @return java.util.List<org.springframework.data.mongodb.core.aggregation.AggregationOperation>
|
|
|
+ * @return java.util.List<org.springframework.data.mongo.core.aggregation.AggregationOperation>
|
|
|
**/
|
|
|
public List<AggregationOperation> aggrQueryCondition(Criteria mainCriteria, String unwind, Criteria unwindCriteria, GroupOperation groupOperation) {
|
|
|
List<AggregationOperation> commonOperations = new ArrayList<>();
|