centos 7 下源代码安装
访问网站选择下载资源
我选择的是linux版本的,复制源代码;
linux环境下:
1. wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.5.tgz
2. gunzip <filename>
解压缩
3. tar -xvf <filename>
解归档
4. mv <source> /usr/local/<source>
移动安装包到/usr/local/下 souce 是解压后的安装包
5. vim .bash_profile
这是配置环境变量的文件
6. PATH=...:/usr/local/<source>/bin
配置环境变量, 在PATH后面 无论写什么直接 : 后面写上绝对路径的安
装包下的bin目录 因为bin有执行文件, mongod 是启动服务器的
mongo 是启动交互式环境的, 配置环境变量之后,在主目录下输入
mongod 或者 mongo时系统就会自动去PATH中执行bin目录下的mongod
或者 mongo
7. source .bash_profile
使配置生效
在主目录下 输入命令 echo $PATH 查看环境变量
配多少个环境变量就在 PATH 后面 :加上要在主目录下要直接启动的bin
下的执行文件
8. mkdir -p /data/db 这个文件夹一定要建的
9. mongod 启动mongodb服务器 不过这样ctrl+c退出时服务器也就退出了
要想一直启动 后面加上 & 这样就在后台启动了
服务器默认启动端口27017
要想让别人也可以连接,需要在阿里云开个端口 27017
然后启动服务器时 指定绑定的地址 :
mongod --bind_ip 172.18.17.128 --quiet &
我这里绑定的是阿里云的私网地址,因为这样别人才可以连接
jobs 查看所有后台进程
fg %1 进程前面编号 把后台置于前台
10. 启动 mongodb交互式环境
mongo --host 112.74.171.100 连接mongo服务器
如果启动服务器时 直接mongod & 自己给自己玩的话, 那么启动
交互式环境时 直接mongo 就可以了
11. 进入交互式环境时,查看是否连接成功
输入db 回应test 表示连接成功
执行完上面的步骤, mongodb安装完成,可以使用了
可以在windows上下载一个图形界面 Robo 3T软件,直接百度即可, 对阿里来说这就是外网
此刻 就是 上面开端口和绑服务器地址的作用了,该软件的作用可以查看往mongodb 数据库中存入的数据
几个操作命令:
use zhihu 创建数据库
db 查看数据库
db.student.find() 查找student数据库中的所有记录
db.student.insert({'name':'tao','age':25}) 向数据库中插入数据
db.student.find({'age':28})
db.student.find({'age': {'$gt': 15, '$lt': 25}) 查找大于25 小于15的
db.student.update({'_id': 1102, 'gender': 'male'})
更新数据,如果有就更新, 没有的话把原来同行的记录全都抹掉换成更新的内容
db.student.update({'_id': 1102}, {'$set': {'gender': 'male'}})
更新数据 有就更新, 没有在其后面加入,如果条件不存在 新建一条记录
前面的括号中是筛选条件 键值对可以写多个的
因为每次筛选的条件和插入的内容都可以为多个
db.student.update({'_id': 1102}, {'$set': {'name': 'Wang', 'age': 18, 'gender': 'male'}})
还有删除等,自己查资料吧
下面是在python中使用 mongodb命令:
import pymongo
def main():
# client = pymongo.MongoClient('mongodb://112.74.171.100:27017')
client = pymongo.MongoClient(host='112.74.171.100', port=27017)
# 使用mongodb数据库
db = client.zhihu
# 使用mongodb集合
pages_cache = db.webpages
# 往集合中插入文档,一条记录一个文档
# pages_cache.insert_one({'_id': 1,'name':'shan','age':28})
# pages_cache.insert_many([
# {'_id':2,'name':'lee','age':25},
# {'_id':3,'name':'yang','age':35},
# {'_id':4, 'name':'mayun','age':40},
#
# ])
# 删除记录
# pages_cache.remove({'_id':4})
# 更新记录 把id=3的文档中的名字改成刘亦菲,年龄改成29 如果有属性就更该属性,如果没有属性,就在后面就如新加的属性
# pages_cache.update({'_id': 3}, {'$set': {'name': '刘亦菲', 'age': 29}})
pages_cache.update({'_id':2},{'$set': {'movie': '仙剑奇侠传'}})
# 更新记录 把id=2的文档 名字改成唐嫣, 年龄改成27 如果有属性就修改属性,如果没有就用新加的属性覆盖了原来的属性
# pages_cache.update({'_id': 2}, {'name': '唐嫣', 'age': 27})
# 当修改的内容存在时更新数据, 不存在时,把其他的键值对全都抹了,替代为sex:male
# pages_cache.update({'_id': 1},{'sex': 'male'}, upsert=True)
# 当筛选条件 _id = 4 不在该文档时, 插入新内容 upsert 意思就是 更新 或者插入
# pages_cache.update({'_id': 4}, {'sex': 'male'}, upsert=True)
# 排序 下面的得到的是一个对象
# sort_id = pages_cache.find().sort('_id')
# for doc in sort_id:
# print(doc)
# 查看有多少条文档
# count_pages = pages_cache.find().count()
# print(sort_id)
# print(count_pages)
# print(client)
#
# docs = pages_cache.find()
# for doc in docs:
# print(doc)
# 字典里面套字典
# pages_cache.insert_one({
# '_id': 5,
# 'name':{
# 'yang':'mi',
# 'yang':'ying',
# 'deng': 'chao'
# }
#
#
# })
if __name__ == '__main__':
main()