MySQL新特性文档型数据库

mongodb在文档型数据库这方面一直做的很好,也发展了很多年,MySQL作为一个比较大众的数据库也慢慢支持了该特性,下面介绍一下MySQL支持文档型数据库的简单操作。

环境:

主机名 IP 系统 软件
master 192.168.91.46 RHEL MYSQL8.0.17/mysqlsh   Ver 8.0.17

[root@master ~]# mysqlsh --mysqlx  -u root  -pkavl7kAkkle! --file /opt/world_x-db/world_x.sql WARNING: Using a password on the command line interface can be insecure.  建立schema

Records: 4079  Duplicates: 0  Warnings: 0

Records: 239  Duplicates: 0  Warnings: 0

Records: 239  Duplicates: 0  Warnings: 0

Records: 984  Duplicates: 0  Warnings: 0

进入库中:

[root@master ~]# mysqlsh --mysqlx  -u root  -pkavl7kAkkle! --database world_x

MySQL Shell 8.0.17

Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates.

Other names may be trademarks of their respective owners.

Type 'help' or '?' for help; 'quit' to exit.

WARNING: Using a password on the command line interface can be insecure.

Creating an X protocol session to 'root@localhost/world_x' Fetching schema names for autocompletion... Press ^C to stop.

Your MySQL connection id is 240126 (X protocol)

Server version: 8.0.17 MySQL Community Server - GPL

Default schema `world_x` accessible through db.  

MySQL  localhost:33060+ ssl  world_x  JS >

或者:

[root@master ~]# mysqlsh --mysqlx  -u root  -pkavl7kAkkle!

 MySQL  localhost:33060+ ssl  JS > use world_x
Default schema `world_x` accessible through db.
 MySQL  localhost:33060+ ssl  world_x  JS >

获取所有的表

 MySQL  localhost:33060+ ssl  world_x  JS > db.getCollections()
[
    <Collection:countryinfo>
]

查看所有的数据:

 MySQL  localhost:33060+ ssl  world_x  JS > db.countryinfo.find().limit(1)
{
    "GNP": 828,
    "_id": "ABW",
    "Name": "Aruba",
    "IndepYear": null,
    "geography": {
        "Region": "Caribbean",
        "Continent": "North America",
        "SurfaceArea": 193
    },
    "government": {
        "HeadOfState": "Beatrix",
        "GovernmentForm": "Nonmetropolitan Territory of The Netherlands"
    },
    "demographics": {
        "Population": 103000,
        "LifeExpectancy": 78.4000015258789
    }
}
1 document in set (0.0005 sec)
 MySQL  localhost:33060+ ssl  world_x  JS >

统计有多少条数据:

MySQL  localhost:33060+ ssl  world_x  JS > db.countryinfo.count()
239

创建一个表:

 MySQL  localhost:33060+ ssl  world_x  JS > db.createCollection("student_info");
<Collection:student_info>

 MySQL  localhost:33060+ ssl  world_x  JS > db.getCollections()
[
    <Collection:countryinfo>,
    <Collection:student_info>
]

MySQL  localhost:33060+ ssl  world_x  JS > db.student_info.add({name:'thunder',age:27,gender:"man"})
Query OK, 1 item affected (0.0066 sec)

MySQL  localhost:33060+ ssl  world_x  JS > db.student_info.add({aihao:"pingpang",yuyan:"shell"})
Query OK, 1 item affected (0.0076 sec)

MySQL  localhost:33060+ ssl  world_x  JS > db.student_info.add({name:'ss',age:25,gender:"girl"})
Query OK, 1 item affected (0.0072 sec)
 MySQL  localhost:33060+ ssl  world_x  JS > db.student_info.add({name:'aa',age:24,gender:"girl"})
Query OK, 1 item affected (0.0039 sec)
 MySQL  localhost:33060+ ssl  world_x  JS > db.student_info.add({name:'jj',age:27,gender:"boy"})
Query OK, 1 item affected (0.0118 sec)

 MySQL  localhost:33060+ ssl  world_x  JS > db.student_info.find()
{
    "_id": "00005da579b70000000000000001",
    "age": 27,
    "name": "thunder",
    "gender": "man"
}
{
    "_id": "00005da579b70000000000000002",
    "aihao": "pingpang",
    "yuyan": "shell"
}
2 documents in set (0.0005 sec)

按照条件查询

MySQL  localhost:33060+ ssl  world_x  JS > db.student_info.find("age=27")
{
    "_id": "00005da579b70000000000000001",
    "age": 27,
    "name": "thunder",
    "gender": "man"
}
1 document in set (0.0008 sec)

 MySQL  localhost:33060+ ssl  world_x  JS > db.student_info.find("age>27")
Empty set (0.0007 sec)

删除文档的语法结构:

db.集合名称.remove(条件)
MySQL  localhost:33060+ ssl  world_x  JS > db.student_info.find("age=24")
{
    "_id": "00005da579b70000000000000004",
    "age": 24,
    "name": "qian",
    "gender": "girl"
}
{
    "_id": "00005da579b70000000000000008",
    "age": 24,
    "name": "aa",
    "gender": "girl"
}
2 documents in set (0.0006 sec)

MySQL  localhost:33060+ ssl  world_x  JS > db.student_info.remove("age=24")
Query OK, 2 items affected (0.0044 sec)
 MySQL  localhost:33060+ ssl  world_x  JS > db.student_info.find("age=24")
Empty set (0.0004 sec)

原文地址:https://www.cnblogs.com/winter1519/p/11684514.html