mongo go 查询指定字段_Mongo集群搭建之MongoDB基础

点击标题下「神奇的老黄」可快速关注 e68023ea19a240b764da3d65f3639722.png

    本来这一篇文章是应在国庆放假前发布的,无奈因为一些事情耽误了,没有完善好。。。国庆之前的一周主要是在搭建MongoDB集群,因为之前用的mongo服务是在一台服务器上,为了避免断电、误操作等情况导致服务不可用,所以决定将原来的数据库迁移到新搭建的Mongo集群中。

    接下来这几篇的文章我将会更新相关的实现步骤,如果各位小伙伴有对mongo集群感兴趣的可以关注一下,也欢迎各位在留言区补充和指正。


相关介绍


Nosql DB

      这是一个非关系型数据库。通常我们的数据库有三类: 关系型数据库(RDBMS),联机分析处理数据库(OLAP),和非关系型数据库(NoSql)。      MongoDB属于第三种,而且是一种基于文档的(document oriented)数据库。

优劣势

       优势:查询性能,在都没有建立索引的时候,明显快于MySql。都建立了索引后,不慢于MySql。       劣势:不支持事务。因此如果对于事务要求很高的情形,不适用这个数据库。

概念&语法

概念

       collection:集合,等于关系型数据库中的table。       document:文档对象,等同于关系型数据库table中的一行记录。       field: 键值对,等同于关系型数据库中table的一个column       database:这个没啥区别。       数据在MongoDB中是以BSON的格式存储的,所谓BSON就是binary json, 也就是二进制的json数据。

语法

属性:javascript语法。显示数据库:show dbs使用数据库:use db  (备注:这样子就好了,db不存在,则“新建”一个出来,不会报错,事实是:直到存储docuemnt对象时才创建collection和数据库)    查询数据表:db.getCollectionNames() / show collections数据库统计信息:db.stats()插入记录:db.your_collection.insert(json表达式) 更新记录:db.your_collection.update(json表达式查询用, {$set:json表达式更新用}, 不存在是否插入记录-默认False, 是否更新所有数据-默认False-只更新第一条) db.your_collection.save(json表达式) :实际上是插入和更新操作的合并,记录不存在则insert(根据_id字段判断),存在则update。删除记录:db.your_collection.remove(json表达式)

实际操作

1、安装

# 演示环境 Centos 7# 下载curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.9.tgz# 解压tar -zxvf mongodb-linux-x86_64-rhel70-4.0.9.tgz# 将解压包拷贝到指定目录mv mongodb-linux-x86_64-rhel70-4.0.9/ /usr/local/mongodb # 设置临时环境变量export PATH=/usr/local/mongodb/bin:$PATH

2、启动mongo

# 新建mongo的data文件夹(存放数据库的)以及log文件夹(存放日志的)mkdir -p /home/mongodb/{data,log}# 指定mongo data和log路径,--fork:后台运行mongod --dbpath=/home/mongodb/data --logpath=/home/mongodb/log/mongo.log --fork

786fe12077b655648f1e46105fb494d4.png

3、连接mongo

# 上面启动的端口 默认是27017,连接时也选择默认的就好了$ mongo# 连接成功会出现以下提示MongoDB shell version v4.0.9connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb...>

4、增删改查

> use test_dbswitched to db test_db> db.user.insert({"name":"神奇的老黄","age":18,"qq":"695859954"})WriteResult({ "nInserted" : 1 })

# 语法db.collection.find(query, projection)# 参数说明query :可选,使用查询操作符指定查询条件projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。> db.user.find() { "_id" : ObjectId("5d91c89f10820a0dbe815511"), "name" : "神奇的老黄", "age" : 18, "qq" : "695859954" }

# 语法db.collection.update(   ,   ,   {     upsert: ,     multi: ,     writeConcern:    })# 参数query : update的查询条件,类似sql update查询内where后面的。update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。writeConcern :可选,抛出异常的级别。# 代码演示> db.user.update({"name":"神奇的老黄"},{$set:{"name":"MagicHuang"}})WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.user.find(){ "_id" : ObjectId("5d91c89f10820a0dbe815511"), "name" : "MagicHuang", "age" : 18, "qq" : "695859954" }

# 语法db.collection.remove(   ,   {     justOne: ,     writeConcern:    })# 参数query :(可选)删除的文档的条件。justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。writeConcern :(可选)抛出异常的级别。#代码演示> db.user.remove({"name":"MagicHuang"})

结束语

    以上MongoDB基础篇的大致内容,接下来会更新MongoDB 搭建集群的三大模式:主从模式、副本集模式、分片集群模式。各位小伙伴哪里不懂或者本文讲述的内容有错误,欢迎在评论区留言讨论~

    点击左下角“

a902db0b29d2f15280e2790c38a1d7d4.png

推荐文章

全面深入理解 Python 面向对象

你不清楚的 18 个非技术面试题是这些!

Python爬虫抓取纯静态网站及其资源

7f9ae15ad18b7e71d5569965e5ac844c.png

看完本文有收获?请转发分享给更多的人

关注「神奇的老黄」   学习更多的技术

823f820e64081f722f5c90c1cf133ce1.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值