美文网首页
mongo 类似sql delete where id in的操

mongo 类似sql delete where id in的操

作者: minijjlk | 来源:发表于2019-02-10 09:25 被阅读0次

    项目中用到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强大

    相关文章

      网友评论

          本文标题:mongo 类似sql delete where id in的操

          本文链接:https://www.haomeiwen.com/subject/aryteqtx.html