Mongodb基本使用方法

一、操作mongodb数据库
    1、创建数据库
        语法:use 数据库名
        注意:如果数据库不存在则创建数据库,否则切换到指定的数据库
        注意:如果刚刚创建的数据库不在列表内,如果要显示它,我们需要向刚刚创建的数据库中插入一些数据
        (   db.student.insert({name:"tom", age:18, gender:1,address:"北京", isDelete:0})   )
    2、删除数据库
        前提:使用当前数据库(use 数据库名)
        db.dropDatabase()
    3、查看所有数据
        show dbs
    4、查看当前正在使用的数据库
        a、db
        b、db.getName()
    5、断开连接
        exit
    6、查看命令api
        help

二、集合操作
    1、查看当前数据库下有哪些集合
        show collections
    2、创建集合
        a、
            语法:db.createCollection("集合名")
            示例:db.createCollection("class")
        b、
            语法:db.集合名.insert(文档)
            示例:db.student.insert({name:"tom", age:18, gender:1,address:"北京", isDelete:0})

        区别:两者的区别在于前者创建的是一个空的集合,后者创建一个空的集合并添加一个文档

    3、删除当前数据库中的集合
        语法:db.集合名.drop()
        示例:db.class.drop()


三、文档操作
    1、插入文档
        a、使用insert()方法插入文档
            语法:db.集合名.insert(文档)
            插入一个:db.student.insert({name:"lilei", age:19, gender:1,address:"北京", isDelete:0})
            语法:db.集合名.insert([文档1, 文档2, ……, 文档n])
            插入多个:db.student.insert([{name:"海妹妹", age:17, gender:0,address:"北京", isDelete:0},{name:"韩梅梅", age:20, gender:0,address:"上海", isDelete:0}])

        b、使用save()方法插入文档
            语法:db.集合名.save(文档)
            说明:如果不指定_id字段,save()方法类似于insert()方法。如果指定_id字段,则会更新_id字段的数据
            示例1:db.student.save({name:"poi", age:22, gender:1,address:"石家庄", isDelete:0})
            示例2:db.student.save({_id:ObjectId("59950962019723fe2a0d8d17"),name:"poi", age:23, gender:1,address:"石家庄", isDelete:0})

    2、文档更新
        a、update()方法用于更新已存在的文档
        语法:
            db.集合名.update(
                query,
                update,
                {
                    upset:<boolean>,
                    multi:<boolean>,
                    writeConcern:<document>
                }
            )
        参数说明:
            query:update的查询条件,类似于sql里update语句内where后面的内容
            update:update的对象和一些更新的操作符($set,$inc)等,$set直接更新,$inc在原有的基础上累加后更新
            upset:可选,如果不存在update的记录,是否当新数据插入,true为插入,False为不插入,默认为false
            multi:可选,mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就按照条件查找出来的数据全部更新
            writeConcern:可选,抛出异常的级别

        需求:将lilei的年龄更新为25
        示例:
              db.student.update({name:"lilei"},{$set:{age:25}})
              累加:db.student.update({name:"lilei"},{$inc:{age:25}})  
              全改:db.student.update({name:"poi"},{$set:{age:42}},{multi:true})  

        b、save()方法通过传入的文档替换已有文档
            语法:
                db.集合名.save(
                    document,
                    {
                        writeConcern:<document>
                    }
                )
            参数说明:
                document:文档数据
                writeConcern:可选,抛出异常的级别

    3、文档删除
        说明:在执行remove()函数前,先执行find()命令来判断执行的条件是否存在是一个良好习惯

        语法:
            db.集合名.remove(
                query,
                {
                    justOne:<boolean>,
                    writeConcern:<document>
                }
            )
        参数说明:
            query:可选,删除的文档的条件
            justOne:可选,如果为true或1,则只删除一个文档
            writeConcern:可选,抛出异常的级别

        示例:db.student.remove({name:"poi"})

    4、文档查询
        a、find()方法
            语法:db.集合名.find()
            查询集合下所有的文档(数据):db.student.find()
        b、find()方法查询指定列
            语法:db.集合名.find(
                query,
                {
                    <key>:1,
                    <key>:1
                }
            )
            参数说明:
                query:查询条件
                key:要显示的字段,1表示显示

        示例:
              db.student.find({gender:0},{name:1,age:1})
              db.student.find({},{name:1,age:1})

        c、pretty()方法以格式化的方式来显示文档
            示例:db.student.find().pretty()

        d、findOne()方法查询匹配结果的第一条数据
            示例:db.student.findOne({gender:0})
    5、查询条件操作符
        作用:条件操作符用于比较两个表达式并从Mongodb集合中获取数据
        a、大于 - $gt
            语法:db.集合名.find({<key>:{$gt:<value>}})
            示例:db.student.find({age:{$gt:20}})
        b、大于等于 - $gte
            语法:db.集合名.find({<key>:{$gte:<value>}})
        c、小于 - $lt
            语法:db.集合名.find({<key>:{$lt:<value>}})
        d、小于等于 - $lte
            语法:db.集合名.find({<key>:{$lte:<value>}})
        e、大于等于 和 小于等于 - $gte 和 $lte
            语法:db.集合名.find({<key>:{$gte:<value>,$lte:<value>}})
        f、等于 - :
            语法:db.集合名.find({<key>:<value>})
        g、使用_id进行查询
            语法:db.student.find({"_id":ObjectId("id值")})
            示例:db.student.find({"_id":ObjectId("5995084b019723fe2a0d8d14")})
        h、查询某个结果集的数据条数
            db.student.find().count()
        i、查询某个字段的值当中是否包含另一个值
            语法:
            示例:db.student.find({name:/ile/})
        j、查询某个字段的值是否以另一个值开头
            示例:db.student.find({name:/^li/})
    6、条件查询and 和 or
        a、AND条件
            语法:db.集合名.find({条件1,条件2,……,条件n})
            示例:db.student.find({gender:0,age:{$gt:16}})
        b、OR条件
            语法:
                db.集合名.find(
                    {
                        $or:[{条件1},{条件2},……,{条件n}]
                    }
                )
            示例:db.student.find({$or:[{age:17},{age:{$gte:20}}]})
        c、AND和OR联合使用
            语法:
                db.集合名.find(
                    {
                        条件1,
                        条件2,
                        $or:[{条件3},{条件4}]
                    }
                )
    7、limit、skip
        a、limit():读取指定数量的数据记录
            db.student.find().limit(3)
        b、skip():跳过指定数量的数据
            db.student.find().skip(3)
        c、skip与limit联合使用
            通常用这种方式来实现分页功能
            示例:db.student.find().skip(3).limit(3)
    8、排序
        语法:db.集合名.find().sort({<key>:1|-1})
        示例:db.student.find().sort({age:1})
        注意:1表示升序,-1表示降序

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/456853.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Device eth0 does not seem to be present,delaying initialization的解决办法

最近由于重装了操作系统导致之前配置好的集群出现了问题&#xff0c;需要修正一下&#xff0c;在刚开始为NameNode配置网络设置的时候&#xff0c;已经按照网上的相关步骤配置好了ifcfg-eth0文件中的内容&#xff0c;但在ifconfig时却无法观察到设置的静态IP地址&#xff0c;后…

Angularjs 动态添加指令并绑定事件

先说使用场景&#xff0c;动态生成DOM元素并绑定事件&#xff0c;非常常见的一种场景&#xff0c;用jq实现效果&#xff1a; http://jsbin.com/gajizuyuju/edit?html,js,output var count0; $("#test").on("click",function(event){if(event.target.tagNa…

css标签resolution,html/css to fit all screen resolution

可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效&#xff0c;请关闭广告屏蔽插件后再试):问题:Im working on the website and Im trying to make it responsive to all resolutions but without success..Here is HTML:Lorem ipsum nasov je? "Lorem…

钉钉开发笔记(一)

钉钉开发分为&#xff1a;1、移动客户端。2、PC端。3、服务端。三个平台的开发。 1、移动端&#xff1a;面对钉钉手机用户和企业用户。 2、同上主要面向PC端的用户和企业。 3、服务端&#xff0c;用于用户和企业内部管理的平台方向&#xff0c;例如OA网站。 本人主要从事移动端…

import导入模块

面试题: import module与from module import * 两种模块导入有何区别 1. import module 引用共享变量时&#xff0c;要使用module.变量名,而from module import * 直接使用变量名即可 2. import module方式 本地不会创…

在启动HDFS时,针对集群中namenode无法识别datanode的问题的解决方法

最近由于重装了系统&#xff0c;需要对之前搭建的集群要做些改动。在对每个虚拟机的网络进行正确的配置之后&#xff0c;重新执行hadoop/sbin/start-dfs.sh命令来启动HDFS&#xff0c;然而namenode却无法识别datanode。 后来通过对之前学过的知识进行回顾和梳理发现了问题的所…

HBase的基础知识

1.HBase(NoSQL&#xff1a;不是关系型数据库)的逻辑数据模型 HBase – Hadoop Database&#xff0c;是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统&#xff0c;利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase利用Hadoop HDFS作为其文件存储系统…

Django 部署基础【使用 Nginx + uWSGI 的方式来部署来 Django】

本文主要讲解在 Linux 平台下&#xff0c;使用 Nginx uWSGI 的方式来部署来 Django&#xff0c;这是目前比较主流的方式。当然你也可以使用 Gunicorn 代替 uWSGI&#xff0c;不过原理都是类似的&#xff0c;弄懂了其中一种&#xff0c;其它的方式理解起来问题也不会很大。 有很…

css的属性是变量是怎么表达,CSS自定义属性(变量)

Github上有个叫electron-api-demos的项目&#xff0c;看代码的时候发现了这么一个css文件(variables.css)&#xff1a;:root {--color: hsl(0,0%,22%);--color-subtle: hsl(0,0%,44%);--color-strong: hsl(0,0%,11%);--color-link: hsl(0,0%,22%);--color-border: hsl(0,0%,88%…

Exception in thread main java.lang.UnsupportedClassVersionError的另类解决办法

最近在Linux虚拟机上跑在windows平台上的eclipes打出来的jar包时报出Exception in thread “main” java.lang.UnsupportedClassVersionError的错误&#xff1a; 经过上网查询了解到是因为自己Windows使用的是jdk1.8版本&#xff0c;而Linux使用的是jdk1.7版本&#xff0c;所…

Linux命令【第一篇】

1、创建一个目录/data 记忆方法&#xff1a;英文make directorys缩写后就是mkdir。 命令&#xff1a; mkdir /data 或 cd /;mkdir data #提示&#xff1a;使用分号可以在一行内分割两个命令。 实践过程&#xff1a; 方法一&#xff1a; [rootoldboy66 ~]# mkdir /data #查…

Jenkins + gitlab webhook实现自动化部署

1、先在Jenkins安装插件Gitlab Hook Plugin 和Build Authorization Token Root Plugin&#xff1b;2.插件安装完成后在任务里添加token3、在gitlab上添加钩子4、点击测试钩子或push代码再看Jenkins已经在构建了就说明成功了&#xff08;也可以在浏览器直接执行这个URL&#xff…

多继承以及MRO顺序【super().的使用】

多继承以及MRO顺序 1. 单独调用父类的方法 # codingutf-8print("******多继承使用类名.__init__ 发生的状态******") class Parent(object):def __init__(self, name):print(parent的init开始被调用)self.name nameprint(parent的init结束被调用)class Son1(Paren…

人工智能专业词汇集

最近看到一篇关于AI专业词汇总结的文章&#xff0c;感觉不错&#xff0c;分享一下。 对应的词汇项目地址为&#xff1a;https://github.com/jiqizhixin/Artificial-Intelligence-Terminology 本词汇库目前拥有的专业词汇共计 500 个&#xff0c;主要为机器学习基础概念和术语…

js 当前日期增加自然月

js 在日期不满足的情况下就会自动加1个月&#xff0c;比如在当前时间为3月31号&#xff0c;传入1&#xff0c;1两个参数&#xff0c;预期结果为2月29日&#xff0c;但是结果输出了3月2日。就是如果不满就会溢出到下个月&#xff0c;后来看了api发现了setMonth有两个方法&#x…

好雨云帮如何对接Git Server

前言 云帮目前支持对接GitLab、Gogs、Github,或者主流代码托管平台的公开项目&#xff0c;后期会考虑接入其他类型的Git服务。 私有云 GitLab是一个用于仓库管理系统的开源项目&#xff0c;私有云服务里使用比较多的自建Git服务。 对接GitLab 通过应用市场进行安装Gitlab 安装G…

Python 生成requirement 使用requirements.txt

python项目中必须包含一个 requirements.txt 文件&#xff0c;用于记录所有依赖包及其精确的版本号。以便新环境部署。requirements.txt可以通过pip命令自动生成和安装生成requirements.txt文件 pip freeze > requirements.txt安装requirements.txt依赖 pip install -r requ…

Source Insight上手教程

目录Project的建立和工作区域同步查看定义查找引用查找调用Source Insight常用快捷键 目录 最近刚参加工作&#xff0c;第一个任务就是查看项目的源码&#xff0c;熟悉代码结构。于是乎就简单学习了Source Insight。在这里就转载别人的文章当做自己的笔记&#xff0c;便于自己…

微信禁用右上角的分享按钮,WeixinJSBridge API以及隐藏分享的子按钮等菜单项

今天在做隐藏微信右上角的分享按钮 百度查到的一串代码&#xff0c;挺好用的 <!--禁用微信分享按钮--><script>function onBridgeReady() {WeixinJSBridge.call(hideOptionMenu);}if (typeof WeixinJSBridge "undefined") {if (document.addEventListen…

python2.7无法使用pip(安装easy_install)

python27和python36 共存时安装pip方法&#xff0c;解决python27文件夹下没有script文件方法 报错&#xff1a; D:\PYTHON2.7>python ez_setup.py Downloading http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg Traceback (most recent call…