MongoDB结合Robo 3T 1.4.3的简单操作

这篇具有很好参考价值的文章主要介绍了MongoDB结合Robo 3T 1.4.3的简单操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MongoDB的简单操作结合Robo 3T 1.4.3工具进行查询。

常用的正则表达式

/* 29 */  正则表达式 /\* [0-9]* \*/
"_id" : ObjectId("5f3d05cdfd2aa9a8a7"),   正则表达式  \"([^\"]*_id)\".*,

使用方法:查询结果去掉注释和不需要的字段后可直接修改为json放入到MySQL中查询。

查询说明

MongoDB 查询数据的语法格式:db.collection.find(query, projection)
    说明: 
             1 collection:链接,可以使用 db.getCollection('表名') 或者 db.表名
             2 find:查询,可以使用findOne,find/findMany
             3 query:查询条件。
                   3.1 and关系使用","间隔;
                   3.2 or关系使用,$or:[{"字段1":"字段值1"},{"字段2": "字段值2"}]                  
             4  projection:使用投影操作符指定返回的键,缺省是默认所有字段显示
操作符:
               {"字段1":"字段值"} 相当于 字段1=字段值1;
               {"字段1":{$ne:"字段值1"}} :不等于 相当于 字段1 != 字段值1

               {"字段1":{$lt:"字段值1"}} :小于 相当于 字段1 <字段值1
               {"字段1":{$lte:"字段值1"}} :小于或等于 相当于 字段1 <= 字段值1
               {"字段1":{$gt:"字段值1"}} :大于 相当于 字段1 > 字段值1 
               {"字段1":{$gte:"字段值1"}} :大于或等于 相当于 字段1 >= 字段值1    
           
               {"字段1":/字段值1/} :模糊查询 相当于 字段1 like '%字段值1%'
               {"字段1":/^字段值1/} :以开始 相当于 字段1 like '字段值1%'
               {"字段1":/字段值1$/} :以结束 相当于 字段1 like '%字段值1'

               例子: db.getCollection('集合名称').find({name:/R4300$/});


               {"字段1":/^字段值1^/} :不包含 相当于 字段1 not like '%字段值1%'

  匹配null :{"字段1":null}
  使用distinct: 表名.distinct('字段1');
  in/not in  .find({'字段1' : {‘$in’ : ['字段值1', '字段值2', '字段值3']}}); 
                  .find({'字段1' : {‘$nin’ : ['字段值1', '字段值2', '字段值3']}});
  exists  {字段1:{$exists:'字段值1'}}            
  $all匹配所有:{字段1:{$all:[字段值1,字段值2]}} ,必须都满足才可以
  多层关系查询:{"字段1.子级字段2":/子级字段值1/}  或者 {"字段1":{'$elemMatch':{'子级字段1':/子级字段值1/}}}

太麻烦了,来个实际点的操作。

=查询

db.getCollection('集合').find({"name":'name值'},{_id:0,name:1})

模糊查询

db.getCollection('集合').find({"name":/name值/},{_id:0,name:1})

{_id:0,name:1} 查询结果展示那些字段的值

查询数量

db.getCollection('集合').find({"name":/name值/},{_id:0,name:1}).count()

in查询

db.getCollection('集合名称').find({'字段' : {'$in' : [限制条件1,限制条件2]},'数组字段名称':{$size:长度限制}})

db.getCollection('集合名称').find({'_id' : {'$in' : [ObjectId("63f33758daec1c9f"),ObjectId("63f33aec1c6f")]},'attrs':{$size:9}})

多条件and查询

db.getCollection('集合').find({"name":'name值',"code":'Code123'},{_id:0,name:1,code:1})

更新操作

更新一条记录的某个字段

db.getCollection('集合名称').update({'code':'code123'},{$set:{'name':'name123'}})

更新记录中的数组中的某个字段

db.getCollection('集合名称').update({code:/ZZGX_B02F0302_/},{$set:{'属性数组.索引':'更新值'}})

比如 

db.getCollection('集合名称').update({code:'007'},{$set:{"code":"code123","params.12.value":"new_value","name":"007"}},false,true)

增加了点小尾巴,用于更新多条;

数组中增加元素(单个,不管数组中是否存在也往里放,这样的操作有可能造成里面有多个关键词的数据)

db.getCollection('集合名称').find({'类型':ObjectId("xxxx")}).forEach(
    function(item)
    {
    db.getCollection('集合名称').update({"_id":item._id},
    {$push:{"params":{
            "key" : "key123",
            "value" : "123"
        }
    }})})

数组中增加多个元素($addToSet 没有就添加,有不添加)

db.getCollection('集合名称').find({'_id':ObjectId("xxxx")}).forEach(
    function(item)
    {
    db.getCollection('集合名称').update({"_id":item._id},
    {$addToSet:{"params":{$each: [{
            "len" : 255,
            "notnullable" : false,
            "enums" : [],
            "name" : "业务名称",
            "field" : "business_name",
            "dtype" : "string",
            "dvalue" : ""
        }, 
        {
            "len" : 255,
            "notnullable" : false,
            "enums" : [],
            "name" : "负责科室",
            "field" : "resp_office",
            "dtype" : "string",
            "dvalue" : ""
        }, 
        {
            "len" : 255,
            "notnullable" : false,
            "enums" : [],
            "name" : "负责部门",
            "field" : "resp_department",
            "dtype" : "string",
            "dvalue" : ""
        }, 
        {
            "len" : 255,
            "notnullable" : false,
            "enums" : [],
            "name" : "负责人",
            "field" : "resp_people",
            "dtype" : "string",
            "dvalue" : ""
        }, 
        {
            "len" : 255,
            "notnullable" : false,
            "enums" : [],
            "name" : "联系方式",
            "field" : "contact_info",
            "dtype" : "string",
            "dvalue" : ""
        }]}
    }})})

这个地方在mysql中的查询可以这样

select json_unquote(json_extract(t.params,'$[0].value')) from it_device  t where 1=1;

当然简单的json字段查询也可以这样 数据表字段->>'$.json字段'

例如 select power->>'$.powerType' from power_history where 1=1;

params:通过查询json格式的数据导入到mysql中的属性数组字段

 但是这块查询的时候有个问题,MongoDB中的数组字段需要排序。怎么排序我还不会,后续再补充下

使用记录中的字段更新另一个字段

db.getCollection('集合名称').find({'code': {'$in' : ['CT_SV','CT_ST']}}).forEach(function(item){                 
   db.getCollection('集合名称').update({"_id":item._id},
          {"$set": {"name":item.desc}},false,true) 
})文章来源地址https://www.toymoban.com/news/detail-486622.html

到了这里,关于MongoDB结合Robo 3T 1.4.3的简单操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Springboot WebFlux项目结合mongodb进行crud

    引入依赖 创建TaskRepository接口

    2024年01月18日
    浏览(34)
  • prisma 结合 mongodb 查询地理空间坐标,实现 “附近的人”功能

    前言:我们创建一个集合,添加测试数据,并执行 mongodb 的地理空间查询,返回需要的数据。 1、通过 schema.prisma , 创建 store 集合 2、通过 prisma/client ,插入 几条测试数据 location 的数据格式为 GeoJSON ,即地理位置信息的 JSON 表示法。 这里 type 指定类型为 点坐标 , coordinates

    2024年02月10日
    浏览(48)
  • 如何在Ubuntu系统使用Docker搭建MongoDB结合内网穿透实现公网连接

    本文主要介绍如何在Linux Ubuntu系统使用Docker快速部署MongoDB,并结合cpolar内网穿透工具实现公网远程访问本地数据库。 MongoDB服务端可以运行在Linux、Windows、MacOS平台,可以存储比较复杂的数据类型,支持的查询语言非常强大,几乎可以实现类似关系数据库单表查询的绝大部分

    2024年03月26日
    浏览(57)
  • 如何使用Docker部署MongoDB并结合内网穿透实现远程访问本地数据库

    正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能 学习网站, 通俗易懂,风趣幽默 ,忍不住分享一下给大家。 点击跳转到网站。 本文主要介绍如何在Linux Ubuntu系统使用Docker快速部署MongoDB,并结合cpolar内网穿透工具实现公网远程访问本地数据库。 MongoDB服务

    2024年02月22日
    浏览(93)
  • MongoDb-01——Mac上安装MongoDb以及相关的简单命令

    官网下载: https://www.mongodb.com/try/download/community. 选择对应的版本下载,如下: 1.2.1 官方安装文档 关于安装建议参考中文文档,各操作系统的安装都有了 MongoDB 中文手册. 上面文档可能不是根据最新版本定的,所以,如果想安装最新版本的,可以参考官方英文网站,如下:

    2024年02月10日
    浏览(35)
  • MongoDB简单快速入门

     MongoDB是一个开源、高性能、无模式的文档型数据库。NoSQL数据库产品中的一种,是最想关系型数据库的非关系型数据库  直接将安装的压缩包进行解压,然后在创建一个data文件夹,在data文件夹下面创建一个子文件夹db 启动服务端 创建数据库 mongod --dbpath=…datadb 进入bin目

    2024年02月08日
    浏览(48)
  • MongoDB实验——MongoDB shell操作

    MongoDB shell是一个可执行文件,是MongoDB自带的一个交互式JavaScript shell,位于MongoDB安装路径下的/bin文件夹中。要启动MongoDB shell,可执行命令mongo。这将在控制台提示符中启动该shell,MongoDB shell提供了多个命令,下面列出了多个MongoDB shell命令及其用途。 一、MongoDB shell脚本编程

    2024年02月10日
    浏览(33)
  • 13、MongoDB--通过 SpringBoot 整合 Spring Data MongoDB(【连接多个 MongoDB 服务器】、【高级定制 MongoDB 客户端】的简单介绍)

    放弃 Spring Boot 为 MongeDB 提供的自动配置,接下来同样要干如下事情: 手动配置多组 ReactiveMongoDatabaseFactory 和 ReactiveMongoTemplate,要连几个 MongoDB 服务器就配置几组。 同步 API 则使用 MongoDatabaseFactory 和 MongoTemplate。 针对不同 MongoDB 服务器,分别开发相应的 DAO 组件类,建议将它

    2024年03月19日
    浏览(66)
  • SpringBoot实用开发(十二)-- MongoDB语句的简单使用

    目录 1.新增文档 2.删除文档 3.修改文档 4.查询文档 4.1 基础查询 4.2 条件

    2024年01月24日
    浏览(40)
  • Java操作mongodb的基本操作

    目录 MongoDB的基本操作 新增 方式一: 方式二: 删除:  带条件的删除 修改 修改条件 修改并添加  多条件修改: 查询 普通查询 条件查询 ​编辑 多条件查询 模糊查询: 查询除来的结果有两种的显示方式: MongoDB中的文档本质上是一种类似JSON的BSON格式的数据。 BSON是一种类

    2023年04月09日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包