mongodb中如何赋值一个collection

mongodb 的版本是 3.2.6,storage engine 为 wiredTiger 
现在数据库内要完全复制一个collection,可以采用以下方式

原始表:t_table 
目标表:t_tmp1

db.createCollection(“t_tmp1”);

db.t_tmp1.createIndex({“custno”:1},{“background”:1})

db.t_table.aggregate({$match: {}}, {$out: ‘t_tmp1’})
 ———————————————— 
版权声明:本文为CSDN博主「peiyongbin_」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ctypyb2002/article/details/78346756

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用MongoTemplate的聚合框架(Aggregation Framework)来实现这个查询操作。具体步骤如下: 1. 使用 $match 操作符筛选出 num 字段以 PK 开头的文档: ```java Criteria criteria = Criteria.where("num").regex("^PK"); MatchOperation match = Aggregation.match(criteria); ``` 2. 使用 $project 操作符将 num 字段转换为数字类型并添加一个新的字段,方便后续进行比较: ```java ProjectionOperation project = Aggregation.project() .and("num") .applyCondition("$substr", Arrays.asList("$$num", 2, -1)) .convertToType("int") .as("numInt"); ``` 上述代码,使用 $substr 操作符截取 num 字段的第 2 位到末尾作为数字部分,再使用 $convert 操作符将字符串类型的数字转换为整型,并将其赋值一个新的字段 numInt。 3. 使用 $group 操作符进行分组操作,并利用 $max 操作符获取 numInt 字段的最大值: ```java GroupOperation group = Aggregation.group().max("numInt").as("maxNum"); ``` 4. 最后,使用 MongoTemplate 的 aggregate 方法执行聚合操作,将上述操作组合起来: ```java Aggregation aggregation = Aggregation.newAggregation( match, project, group ); AggregationResults<MaxNumResult> results = mongoTemplate.aggregate( aggregation, "business", MaxNumResult.class ); MaxNumResult maxNumResult = results.getUniqueMappedResult(); int maxNum = maxNumResult.getMaxNum(); ``` 上述代码,我们定义了一个名为 MaxNumResult 的类,用于保存聚合结果: ```java public class MaxNumResult { private int maxNum; public int getMaxNum() { return maxNum; } public void setMaxNum(int maxNum) { this.maxNum = maxNum; } } ``` 最终,maxNum 变量就是 num 字段以 PK 开头的文档数字部分的最大值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值