mongo 类似sql delete where id in的操作

项目中用到mongo,想做一段类似sql 中的delete from table where id in (ids)的操作,折腾一番,实现如下

1 查找ids

var ids = db.getCollection('stock_report_income_tushare').aggregate([

{$group : {_id : {'ts_code':'$ts_code','end_date':'$end_date'}, num_sum : {$sum : 1}, maxid : {$max : '$_id'}}},

{ $match : { num_sum : { $gt : 1} } },

{ $project : { maxid : 1,_id:0}}

]).map(function(doc) { return doc.maxid; });

$group作为分组条件以及取得的分组字段

$match 类似于 having

$project 类似于group完之后再嵌套一层select的字段,上例只取maxid

map是对整个查询结果做一个迭代,javascript语法,我只需要分组数据的id数组

2 db.stock_report_income_tushare.remove({_id: {$in: ids}})

第二部删除id in ids的数据,可以看出,利用javascript语法的特性之后,mongo的shell脚本能实现非常强大的功能,使用非常方便,比sql强大

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 12,151评论 0 10
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 13,147评论 0 13
  • width: 65%;border: 1px solid #ddd;outline: 1300px solid #...
    邵胜奥阅读 10,339评论 0 1
  • 一、MongoDB简介 1.概述 ​ MongoDB是一个基于分布式文件存储的数据库,由C++语言编写。旨在为WE...
    郑元吉阅读 4,563评论 0 2
  • 知识点:美化输出:db.stu.find().pretty() $project:修改输入文档的结构。可以用来重命...
    胖虎很可爱阅读 4,066评论 0 1