美文网首页
记录一下实验过程中mongodb常用的操作语句

记录一下实验过程中mongodb常用的操作语句

作者: 不会是绿色的 | 来源:发表于2020-03-18 10:47 被阅读0次

一、查询重复数据

# 方法一
db.集合名称.aggregate(
    {'$group':{
        '_id': {'查询重复字段名': '$查询重复字段名'},
        'uniqueIds': {'$addToSet': '$_id'},
        'count' : {'$sum': 1}
    }},
    {'$match': {
        'count': {'$gt': 1}
    }}
)

# 方法二
db.集合名称.aggregate(
    {"$group" : { "_id": "$查询重复字段名", "count": { "$sum": 1 } } },
    {"$match": {"_id" :{ "$ne" : null } , "count" : {"$gt": 1} } }, 
    {"$project": {"查询重复字段名" : "$_id", "_id" : 0} }
)

二、删除重复数据

db.表名.aggregate([
    {
        $group: { _id: {字段1: '$字段1', 字段2: '$字段2'},count: {$sum: 1},dups: {$addToSet: '$_id'}}
    },
    {
        $match: {count: {$gt: 1}}
    }
],{
    allowDiskUse: true
}).forEach(function(doc){
    doc.dups.shift();
    db.表名.remove({_id: {$in: doc.dups}});
})

解析:
1.首先用aggregate将重复字段取出。根据字段1,字段2分组并统计数量,group只返回要参与分组的字段,使用addToSet在返回结果数组中增加_id字段
2.使用match匹配数量大于1的数据gt:greater than
3.doc.dups.shift();表示从数组第一个值开始删除;作用是踢除重复数据其中一个_id,让后面的删除语句不会删除所有数据
4.使用forEach循环根据_id删除数据

Tips:
1.数据量大的时候需要添加allowDiskUse: true,否则会报错。
2.addToSet 操作符只有在值没有存在于数组中时才会向数组中添加一个值。如果值已经存在于数组中,addToSet返回,不会修改数组。

三、给所有数据增加字段

db.表.update(
    // query 
    {
        //"key" : "value"
    },
    
    // update 
    {
        $set:{"字段名":""}
    },
    
    // options 
    {
        "multi" : true,  // update only one document 
        "upsert" : false  // insert a new document, if no existing document match the query 
    }
);

四、更新某个字段

db.user_info_test.update( {"uid":"6727341136"}, {$set:{"follow":['sdsd','dsdsd']}})

set修改器用来指定一个键值对,如果存在键就进行修改,不存在则进行添加。不用set的话会直接将新的记录覆盖原有的记录,而不是在原有记录上做修改。

五、将mongodb的集合导出为csv

1、dos中进入mongodb的bin目录
2、mongoexport -d 数据库名 -c 集合名 --type=csv --fields 要导出的字段 -o 导出路径


TIM图片20200322121440.png
注意:

1、字段和字段之间用逗号分隔开就可以,不能额外添加空格。
2、此处我将字段用双引号括起来了,实际上此处也可以不用括号括起来,但是如果字段名本身含有空格的话,则必须用括号括起来。
3、导出的csv中文很可能出现乱码,解决方法:用记事本打开-->另存为-->编码类型选择ANSI-->确定即可。

---持续更新ing---

相关文章

  • 记录一下实验过程中mongodb常用的操作语句

    一、查询重复数据 二、删除重复数据 解析:1.首先用aggregate将重复字段取出。根据字段1,字段2分组并统计...

  • MongoDB常用语句

    记录一下MongoDB常用语句,顺带与SQL做个简单的对比。 1、查询(find) (1)查询所有结果 (2)指定...

  • mysql 常用操作指令

    sql常用指令 / mongoDB常用指令 sql语句本身大小写不敏感,但是操作的数据本身大小写敏感 【增】1....

  • mongodb常用操作记录

    修改字段名称 参数提示:第一个false表示:可选,这个参数的意思是,如果不存在update的记录,true为插入...

  • pymongo 学习记录

    pymongo 是 mongodb 的 python Driver Editor.记录下学习过程中感觉以后会常用多...

  • MongoDB学习记录(二)

    MongoDB学习记录(二) MongoDB的查询 基本查询语句 基本的查询语句的语法:db.[集合名].fin...

  • mongodb操作语句

    第一章:逻辑结构 第二章:安装部署 1、系统准备 2、mongodb安装 创建所需用户和组 创建mongodb所需...

  • SpringBoot + MongoDB

    mongodb安装及操作:菜鸟教程主要记录一下SpringBoot与MongoDB整合 新建一个SpringBoo...

  • 《MySql笔记》Select语句多表查询

    1.1 实验内容 SQL 中最常用的 SELECT 语句,用来在表中选取数据,本节实验中将通过一系列的动手操作详细...

  • MongoDB 常用查询操作

    MongoDB 查询操作可实现大部分关系型数据库的常用查询操作,本文对 MongoDB 常用查询进行讲解。 在阅读...

网友评论

      本文标题:记录一下实验过程中mongodb常用的操作语句

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