• MongoDB数据库基本操作


    一、使用数据库

    显示所有数据库命令

    $ ./mongo
    MongoDB shell version: 3.0.6
    connecting to: test
    > show dbs
    local  0.078GB
    test   0.078GB
    > 

    显示当前数据库对象

    $ ./mongo
    MongoDB shell version: 3.0.6
    connecting to: test
    > db
    test
    > 

    切换数据库

    > use local
    switched to db local
    > db
    local
    > 

     连接数据库

    从上面我们已经知道连接数据库使用“mongo”命令,默认连接到test数据库,当然这个命令还可以带参数,如

    $ ./mongo localhost:27017

    表示连接到本地数据库服务,localhost表示主机名,这里也是默认连接到test数据库

    >db
    test
    >

    注意后面的端口号必须加上否则,连接到localhost数据库,即使localhost这个数据库为空

    $ ./mongo localhost
    MongoDB shell version: 3.0.6
    connecting to: localhost
    > db
    localhost
    >show dbs
    local  0.078G
    test   0.078G
    >

     如果在其他编程语言中连接MongoDB服务时,需要提供连接字符串,通用写法为

    mongodb://username:password@hostname/dbname

    更多连接实例(此部分参考MongoDB菜鸟教程

    连接本地数据库服务器,端口是默认的。

    mongodb://localhost

    使用用户名fred,密码foobar登录localhost的admin数据库。

    mongodb://fred:foobar@localhost

    使用用户名fred,密码foobar登录localhost的baz数据库。

    mongodb://fred:foobar@localhost/baz

    连接 replica pair, 服务器1为example1.com服务器2为example2。

    mongodb://example1.com:27017,example2.com:27017

    连接 replica set 三台服务器 (端口 27017, 27018, 和27019):

    mongodb://localhost,localhost:27018,localhost:27019

    连接 replica set 三台服务器, 写入操作应用在主服务器 并且分布查询到从服务器。

    mongodb://host1,host2,host3/?slaveOk=true

    直接连接第一个服务器,无论是replica set一部分或者主服务器或者从服务器。

    mongodb://host1,host2,host3/?connect=direct;slaveOk=true

    当你的连接服务器有优先级,还需要列出所有服务器,你可以使用上述连接方式。

    安全模式连接到localhost:

    mongodb://localhost/?safe=true

    以安全模式连接到replica set,并且等待至少两个复制服务器成功写入,超时时间设置为2秒。

    mongodb://host1,host2,host3/?safe=true;w=2;wtimeoutMS=2000

    参数选项说明

    标准格式:

    mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

    标准的连接格式包含了多个选项(options),如下所示:

    选项描述
    replicaSet=name 验证replica set的名称。 Impliesconnect=replicaSet.
    slaveOk=true|false
    • true:在connect=direct模式下,驱动会连接第一台机器,即使这台服务器不是主。在connect=replicaSet模式下,驱动会发送所有的写请求到主并且把读取操作分布在其他从服务器。
    • false: 在 connect=direct模式下,驱动会自动找寻主服务器. 在connect=replicaSet 模式下,驱动仅仅连接主服务器,并且所有的读写命令都连接到主服务器。
    safe=true|false
    • true: 在执行更新操作之后,驱动都会发送getLastError命令来确保更新成功。(还要参考 wtimeoutMS).
    false: 在每次更新之后,驱动不会发送getLastError来确保更新成功。
    w=n 驱动添加 { w : n } 到getLastError命令. 应用于safe=true。
    wtimeoutMS=ms 驱动添加 { wtimeout : ms } 到 getlasterror 命令. 应用于 safe=true.
    fsync=true|false
    • true: 驱动添加 { fsync : true } 到 getlasterror 命令.应用于 safe=true.
    • false: 驱动不会添加到getLastError命令中。
    journal=true|false 如果设置为 true, 同步到 journal (在提交到数据库前写入到实体中). 应用于 safe=true
    connectTimeoutMS=ms 可以打开连接的时间。
    socketTimeoutMS=ms 发送和接受sockets的时间。

    二、创建数据库

    语法格式

    use databasename

    如果数据库不存在,则创建数据库,否则切换到指定数据库。注意新创建的数据库为空,如不向其中插入记录,则不会出现在show dbs语句的结果中

    三、删除数据库

    语法格式

    db.dropDatabase()

    删除当前数据库,默认为 test,你可以使用 db 命令查看当前数据库名。

    注意删除了数据库后,db所引用的数据库仍然为被删除的数据库,只是这个数据库此时为空

  • 相关阅读:
    SQL-W3School-高级:SQL CHECK 约束
    SQL-W3School-高级:SQL FOREIGN KEY 约束
    SQL-W3School-高级:SQL PRIMARY KEY 约束
    SQL-W3School-高级:SQL UNIQUE 约束
    ylbtech-SQL-W3School-高级:SQL NOT NULL 约束
    SQL-W3School-高级:SQL 约束(Contraints)
    SQL-W3School-高级:SQL CREATE TABLE 语句
    SQL-W3Chool-高级:SQL CREATE DATABASE 语句
    SQL-W3School-高级:SQL SELECT INTO 语句
    02:输出最高分数的学生姓名
  • 原文地址:https://www.cnblogs.com/sjjsxl/p/5115665.html
Copyright © 2020-2023  润新知