踩坑记录

今天试了一下MAC下的安装,说一下遇到的问题。我的OS版本是10.15.2。

  • 安装目录 /User/xiaopohair/mongodb/
  • 执行文件目录 /User/xiaopohair/mongodb/bin
  • 数据文件目录 /User/xiaopohair/mongodb/data
  • 日志文件目录 /User/xiaopohair/mongodb/log
  • 配置文件目录 /User/xiaopohair/mongodb/conf
  1. 本来是想直接 brew install 的,结果发现最高的版本才4.0.3,果断放弃了,官网目前是4.2.2。
  2. 直接下的安装包,在官网上。因为是Mac OS 10.15的版本,系统权限的管理机制变化,原则上不能直接安装在系统文件夹下面,比如 /usr/local 。因此直接放在 /Users/用户名/ 下面了。
  3. 编辑 .bash_profile ,将执行文件的目录加到PATH里面,要不然不能直接调用。
  4. 官网下载的这个版本是没有 mongod.conf ,要不然自己建,要不然启动的时候自己写参数
  5. 最后,关机的时候,一直要记得把服务关了,否则哭吧
## 配置PATH
export PATH=/User/xiaopohair/mongodb/bin:$PATH
## 通过参数文件启动服务
mongod --config /User/xiaopohair/mongodb/conf/mongod.conf
## 通过参数启动服务
mongod --dbpath /Users/xiaopohair/mongodb/data --port 27017 --logpath /Users/xiaopohair/mongodb/log/mongod.log --fork --bind_ip_all
## 关服务
use admin
db.shutdownServer()

官方的配置参数说明

第三天

今天学习 《07 | 实验:Hello World程序开发》,其实就是讲了一下在 python 环境下怎么操作 mongodb 。

安装 python 驱动包

pip install pymongo

检查驱动安装的结果

>>> import pymongo
>>> pymongo.version
'3.10.0'
>>>

连接 mongo

>>> import pymongo
>>> pymongo.version
'3.10.0'
>>> from pymongo import MongoClient
>>> uri = "mongodb://127.0.0.1:27017/?minPoolSize=10&maxPoolSize=100"
>>> client = MongoClient(uri)
>>> print client
MongoClient(host=['127.0.0.1:27017'], document_class=dict, tz_aware=False, connect=True, minpoolsize=10, maxpoolsize=100)
>>>

基本操作

插入记录

>>> test_db = client["foo"]
>>> bar_coll = test_db["bar"] ## 一直到这,其实都有这个数据库,也没有这个表,系统也不会报错
>>> result = bar_coll.insert_one({"string":"Hello World"}) ## 这个时候才创建了数据库、表,并插入了一数据
>>> print result
<pymongo.results.InsertOneResult object at 0x00000000033D2D08>
>>>

查询记录

_id 是系统主键,你不建,他就会自己建一个

>>> result = bar_coll.find_one()
>>> print result
{u'_id': ObjectId('5dfdfb19c94228a74e8ecabf'), u'string': u'Hello World'}
>>>

更新记录

>>> result = bar_coll.update_one({"string":"Hello World"},{"$set":{"from":"Hello Earth!"}})
>>> print result
<pymongo.results.UpdateResult object at 0x00000000033D2FC8>
>>> result = bar_coll.find_one()
>>> print result
{u'_id': ObjectId('5dfdfb19c94228a74e8ecabf'), u'from': u'Hello Earth!', u'string': u'Hello World'}
>>>

删除记录

>>> result = bar_coll.remove({"string":"Hello World"})
>>> print result
{u'ok': 1.0, u'n': 1}
>>> result = bar_coll.find_one()
>>> print result
None
>>>
>>> result = bar_coll.insert_one({"string":"Hello World"})
>>> result = bar_coll.insert_one({"string":"Hello"})
>>> result = bar_coll.delete_one({"string":"Hello World"})
>>> print result
<pymongo.results.DeleteResult object at 0x00000000033EA248>
>>>

总结

今天就这些,后面还一个 hello_world.py,不会python 哈,其实就是把交互模式下面的写在一个文件里面了。然后 python hello_world.py 来执行。
不过呢,视频里没讲,我是在github里面看到的。

加油,加油。


xiaopohair
68 声望27 粉丝

把这辈子活的热气腾腾!