Mongodb

作者: 老教练 | 来源:发表于2018-09-25 17:52 被阅读0次

mongodb学习

知识要点:

  1. mongodb基本结构
  2. 库,集合操作
  3. 数据(文档)的增 删 改 查
  4. python操作mongodb

MongoDB 是一个基于分布式 文件存储的NoSQL数据库.

数据库是一个集合的物理容器。

集合是一组MongoDB的文件。

文档是一组键值对。

进入与退出数据库

mongo 进入 exit 退出

(py3env) ubuntu@VM-0-11-ubuntu:~$ mongo
MongoDB shell version: 2.6.10
connecting to: test
> exit
bye
(py3env) pyvip@Vip:~$

库,集合操作

# 显示所有库: show dbs
> show dbs
admin     (empty)
local     0.078GB
mydb      0.078GB
test      0.078GB
#切换数据库: use 数据库名称
# 如果数据库不存在,则指向数据库,但不创建,直到插入数据或创建集合时数据库才被创建
> use pa_test
switched to db pa_test
> show dbs;
admin     (empty)
local     0.078GB
mydb      0.078GB
test      0.078GB
tx_mongo  0.078GB
#查看所在库: db
> db
pa_test
# 所创建的数据库(pa_test)不存在于列表中。要显示的数据库,需要至少插入一个文档进去。
# 集合创建: db.createCollection(name, options)
> db.createCollection('ts11')
{ "ok" : 1 }
# 查看当前数据库的集合: show collections
> show collections
system.indexes
ts11
# 删除库:db.dropDatabase()  
> db
py_test
> db.dropDatabase()
{ "dropped" : "py_test", "ok" : 1 }
> show dbs
admin     (empty)
local     0.078GB
mydb      0.078GB
test      0.078GB
tx_mongo  0.078GB
# 删除集合:db.集合名称.drop()
> db.ts11.drop()
true

数据级增删改查

# 插入数据:   db.集合名称.insert(document)
# 每一条数据,就是一个document,即 就是一条json
# 如果集合不存在,也可以直接通过插入数据来创建集合
> show collections
> 
# 插入一条数据
> db.student.insert({name:'xiaoming',age:18,})
WriteResult({ "nInserted" : 1 })
# 插入多条数据
> db.student.insert([
  {'name':'xxxxxxxxx','age':23,'gender':'male'},
  {'name':'yyy','age':24,'gender':'male'}
])
BulkWriteResult({
    "writeErrors" : [ ],
    "writeConcernErrors" : [ ],
    "nInserted" : 2,
    "nUpserted" : 0,
    "nMatched" : 0,
    "nModified" : 0,
    "nRemoved" : 0,
    "upserted" : [ ]
})
# 查询数据: db.集合名称.find()
# 查询数据
> db.student.find()
{ "_id" : ObjectId("5ae023ac25b176b37f7553a8"), "name" : "xiaoming", "age" : 18 }
# 查询数据,加上格式输出
> db.student.find().pretty()
{
    "_id" : ObjectId("5ae023ac25b176b37f7553a8"),
    "name" : "xiaoming",
    "age" : 18
}
# find(条件,字段)  
> db.student.find({name:'xxx'})
> db.student.find({name:'xxx'},{_id:1,age:1})
# 更新数据更新数据  db.集合名称.update({条件},{新的内容},{multi:true}) 默认跟新一条
# 全文档更新
> db.student.update({name:'xixi'},{name:'xyzxyz',gender:'male'})
# 指定字段更新
> db.student.insert({name:'xixixi',gender:'female',age:20})
> db.student.update({name:'xixixi'},{$set:{'name':'hahahaha'}})
# 更新多条 加{multi:ture}参数
> db.student.update({gender:'male'},{$set:{gender:'female'}},{multi:true})

# 删除操作 db.集合名称.remove({条件}) 默认删除所有满足条件的
> db.student.insert({name:'xxx',age:22,gender:'female'})
> db.student.remove({name:'xxx'})
WriteResult({ "nRemoved" : 3 })
> db.student.insert({name:'xxx',age:22,gender:'female'})
> db.student.insert({name:'xxx',age:22,gender:'female'})
# db.集合名称.remove({条件},{justOne:true}) 只删除一条
> db.student.remove({name:'xxx'},{justOne:true})
WriteResult({ "nRemoved" : 1 })

python操作mongodb

连接:

1.安排pymongo pip install pymongo

2.查看 配置文件 sudo vim /etc/mongodb.conf

    i  ,找到11行 
    如果      bind_id =127.0.0.1  
    修改为 : bind_id =0.0.0.0         (用字母上面的数字键盘)
    esc
    :wq
    /etc/init.d/mongodb restart

4.端口转发 : 27017

import pymongo
# 1 创建连接
client = pymongo.MongoClient('127.0.0.1',27017)
# 2 指定数据库
db = client['xxx']
# 3 指定集合
myset = db['xxx']
data = myset.find()
print(data,type(data))
for i in data:
    print(i)
#方法:
insert_one
insert_many
update_one
update_many
delete_one
delete_many
find_one
find

相关文章

网友评论

      本文标题:Mongodb

      本文链接:https://www.haomeiwen.com/subject/pbbloftx.html