mongodb安装和基本使用

mongodb和redis一样都是一种非交互式数据库,当我么要存储的数据非常多样,比如二手商品,它有很多种不确定的属性,所以我们不能使用传统的方法来保存它,这里采用灵活性非常高的数据库。

1.安装:
center#atlas
2. wget <url>
3. gunzip <filename>
4. tar -xvf <filename>
5. mv <source> /usr/local/<source>
6. vim .bash_profile/.bashrc
PATH=...:/usr/local/<source>/bin
PATH
7. source .bash_profile
8. mkdir -p /data/db
9. mongod
27017
10. 配置防火墙
2.交互式界面操作

mongod --bind_ip 172.18.230.*** --quiet &
先绑定私网ip地址,再退出
mongo --host 112.74.60.22绑定公网host进入mongodb
完成上面两步就可以进入交互界面

这里写图片描述

在交互界面我们可以输入命令对mongo进行操作,在这里我们安装一个图形化界面Robo -3t

> use zhihu
switched to db zhihu
> db
zhihu
> db.student.find()
> db.student.insert({'name':'xxz','age':20}) # 插入数据,注意mongodb的数据==时BJSON==格式,bjson是一种二进制的数据格式,它拥有==更快的遍历速度,更简便的操作==
WriteResult({ "nInserted" : 1 })
> db.student.find() # 查询所有数据
{ "_id" : ObjectId("5b0e7faa22d97fea16ec3ef9"), "name" : "xxz", "age" : 20 } # 因为我们没有指定"_id",系统给我们生成了一个唯一的编号。
> db.student.insert({'_id':2,'name':'xxz','age':20})
WriteResult({ "nInserted" : 1 })
> db.student.find({'age':{'$gt':15}}) # 这里也可以加筛选条件
{ "_id" : ObjectId("5b0e7faa22d97fea16ec3ef9"), "name" : "xxz", "age" : 20 }
{ "_id" : 2, "name" : "xxz", "age" : 20 }
> db.student.find({'age':{'$gt':15}})
{ "_id" : ObjectId("5b0e7faa22d97fea16ec3ef9"), "name" : "xxz", "age" : 20 }
{ "_id" : 2, "name" : "xxz", "age" : 20 }
>db.student.update({'_id':2},{'gender':'male'})当我们这样更新数据时会发现它并不是对数据的更新,而是将原来的数据覆盖,所以在更新数据时我们需要这样做:
> db.student.update({'_id':2},{'$set':{'gender':'famale'}})

现在我们在Robo 3T中可以看到我们的数据:

这里写图片描述

3.python环境操作
def main():
    # client = pymongo.MongoClient('mongodb://120.77.222.217:27017')
    client = pymongo.MongoClient(host='120.77.22.***',port=27017) 
    db = client.zhihu #创建表格
    pages_cache = db.pages 
    pages_cache.insert_one({'url':'http://www.baidu.com','content':'<hello>'}) # 插入单条数据
    pages_cache.insert_many([{'_id':1,'url':'http://www.baidu.com','content':'xxx'},
                            {'_id':2,'url':'http:a//www.qq.com','content':'xxz'}])
    # 插入多条数据,值可以为一个字典
    pages_cache.remove({'url':'http://www.baidu.com'})# 删除符合条件的数据

    for doc in pages_cache.find().sort('_id'): # 通过'_id'排序
    print(doc)
if __name__ == '__main__':
    main()

猜你喜欢

转载自blog.csdn.net/qq_41768400/article/details/80564136