MongoDB常用命令及pycharm链接MongoDB

MongoDB常用命令及pycharm链接MongoDB

1.安装 --见world文档
2.启动
1.在windows中启动
1.切换到 安装目录的bin目录下
1. e: 切换盘符
2. cd E:\Program Files\MongoDB\Server\3.4\bin 切换路径
2.启动服务端,并指定数据的存储路径
格式: mongod --dbpath=数据存储路径
如: mongod --dbpath=E:\Program Files\MongoDB\Server\3.4\data\db
注意有些需要加上引号 mongod --dbpath=“E:\Program Files\MongoDB\Server\3.4\data\db”

   3.启动客端端  ---  注:不要关闭服务
      1.先启动cmd =,切换到 安装目录的bin目录下
      2.执行启动
     格式: mongo.exe   看到 >  即可
    
2.在linux中,见linux安装文档

3.数据库操作
1.查看所有的数据库
格式: show databases;
简写: show dbs;

2.创建或者使用一个数据库
格式: use 数据库名;
当对应的数据库不存在的时候,表示创建该数据库
如果数据库已经存在,表示使用该数据库

  注意:如果创建了一个新的数据库,而该数据库中没有数据,则使用
  show dbs查看的时候,任然看不到,插入数据库后,即可查看到
   插入数据如: db.student.insert({name:"haha"})	 

3.查看当前使用的数据库
格式: db 代表的是当前数据库
或者 db.getName() 可以查看当前数据库的名字

4.删除当前数据库
db.dropDatabase()

5.帮助命令 help
6.退出
exit

  1. 集合的操作 —相当于关系型数据库的 表
    1.查看当前库中的所有集合
    格式: show collections;
    2.创建一个集合
    方式1: db.createCollection(“集合名”) 集合名需要加上引号
    例:db.createCollection(“集合名”)

    方式2: db.集合名.insert(数据)
    例:db.student2.insert({name:“张三”})

    区别: 方式1是创建一个空的集合,如果集合已经存在,不会覆盖创建

       方式2:如果对应的集合不存在表示创建一个集合,并插入数据
             如果对应的集合存在,表示直接插入一条数据!
    

    3.删除一个集合
    格式: db.集合名.drop()

5.文档的操作 — 相当于关系型数据库表中一行数据 row
1.添加一个数据
格式: db.集合名.insert(数据)
数据: key-value的形式
是bson格式, 与json格式一样
格式: 1. {key1:value,key2:value, keyN:value}
2. [ {key1:value,key2:value, keyN:value}, {key1:value,key2:value, keyN:value}] jsonArray
3. {key1:嵌套json数据,key2:value, keyN:value}

    例: db.student.insert({name:'习大大',age:66,address:"中南海",sex:"男"})
   WriteResult({ "nInserted" : 1 })表示插入成功
     注意: mongodb插入数据的时候,会默认生成一个 _id相当于关系型数据库中的主健
    如: "_id" : ObjectId("5b8f45c12e3e35173c33f13c")

2.添加多个数据
格式: db.集合名.insert([数据1,数据2,数据n])
例: db.student.insert([{name:‘习近平’,age:66,address:“北京”,sex:“女”},{name:‘习老总’,age:56,address:“陕西”,sex:“女”},{name:‘习大大’,age:46,address:“中南海”,sex:“男”},{name:‘习主席’,age:76,address:“西安”,sex:“男”},{name:‘习胖胖’,age:86,address:“东京热”,sex:“男”}])

3.插入数据 save 保存
格式: db.集合名.save(数据) 使用方法与insert一致
例: db.student.save({name:‘马赛克’,age:150,address:“东京热”,sex:“不明”})

   区别: 
      db.student.save({ "_id" :ObjectId("5b8f47d03d9b6b894071334b"),name:'马爸爸'})
      如果使用的是save,而且设置_id属性,且_id已经存在时, 此时save表示修改数据
      
  db.student.insert({ "_id" :ObjectId("5b8f47d03d9b6b894071334b"),name:'马妈妈'})
      如果使用的是insert,而且设置_id属性,且_id已经存在时, 则insert会报错,

2.查询数据—结果是 bson的形式
1.查询所有的数据
格式: db.集合名.find()

pycharm下链接MongoDB

1、创建、插入

# 导入mongodb模块     pip install pymongo
import  pymongo

# 创建一个链接mongo服务器的客户端
# host 主机名
# port 端口号
mongoClient  = pymongo.MongoClient(host="10.31.160.135",port=27017)

# 库  --- 集合 --- 文档

#操作一个库
# 格式: mongoClient.库名   如果该库存在表示使用该库, 如果该库不存在表示创建该库
school = mongoClient.school

# 插入数据
# 注意:  在python中插入数据时,要插入字典形式
school.student.insert({'name':'金三胖胖','age':18,'address':'平壤','sex':'不明'})

#关闭连接,释放资源
mongoClient.close()

2、查询数据

import pymongo
from bson import ObjectId
# 通过ID查询

mongoClient = pymongo.MongoClient(host="10.31.160.135",port=27017)


# 查询
# 库
school = mongoClient.school
# 集合
student = school.student

# 查询
res= student.find()

#    查询一条数据
# res = student.find({'name':'小胖胖'})

# 根据id查询,注意倒包
# res = student.find({'_id':ObjectId('5b8f8bacd1d5bec17e7073b3')})


# 排序
# 注意: sort的参数 不是字典    而是普通参数形式   参数1表示要排序的字段名, 参数2表示排序类型,  1 升序, -1降序
# res = student.find().sort("age",-1)


# 分页
# n= 1
# res  = student.find().skip(3*(n-1)).limit(3)


# print(res)
# print(type(res))

# 遍历所有的结果,获得集合中的文档
# 文档在python中是dict
for s in res:
    print(s)
    # print(type(s))
    # print(s.get('name'))

mongoClient.close()

3、修改数据

import pymongo

mongoClient = pymongo.MongoClient(host="10.31.160.135",port=27017)

school = mongoClient.school

student = school.student

# student.update({'name':'习近平'},{"$set":{'address':'中华人民共和国'}})
# upsert
# multi

# student.update({'name':'xxxxxx'},{"$set":{'address':'中华人民共和国'}},{"upsert":"true"})
# student.update({'name':'xxxxxx'},{"$set":{'address':'中华人民共和国'}},upsert=True)

student.update({'name':'习近平'},{"$set":{'address':'中华人民'}},multi=True)

mongoClient.close()

4、删除数据

import  pymongo

mongoClient = pymongo.MongoClient(host="10.31.160.135",port=27017)

school = mongoClient.school
student = school.student

# multi相当于 命令中的justOne 相反
student.remove({"name":"金三胖胖"}, multi = True)

mongoClient.close()

猜你喜欢

转载自blog.csdn.net/wujialaoer/article/details/83013520