ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

mongoDB

2022-03-06 21:34:44  阅读:199  来源: 互联网

标签:name ObjectId mongoDB age db 18 id


MongoDB

01 认识MongoDB

MongoDB简介
       基于分布式文件存储的开源数据库系统。旨在为WEB应用提供可扩展的高性能数据存储解决方案。将数据存储为一个文档,文档类似于 Json格式,MongoDB是非关系型数据库,Json格式和字典格式很类似

    {
         name:"aa" ,
          age:100,
          address:{city:"cs",country:"china"}
      }

 

MongoDB数据模型

 

 

02 库、集合操作

库与表操作

进入数据库:     mongo                                 

退出:        exit

显示所有库:   show dbs                          

切换/创建数据库:use 数据库名称      

> use my_db
> switched to db my_db

创建集合:         db.createCollection('name')     #里面是字符串

> db.createCollection('student')
> { "ok" : 1 }

显示当前数据库的集合: show collections     #只有里面有数据的库才能查到,如果里面没有数据 ,即便你已经创建了,你也show查不到

> show collections
> student

查看当前所在库:     db                                      

删除集合:       db.集合名称.drop()

删除库:           db.dropDatabase()     #进入以后才能删除,删除的也就是打开的那个库

 

03 文档(数据)操作

添加文档(数据):db.集合名称.insert(document)

添加一条文档 db.students.insert({name:'xiaoming',age:18})

db.students.insert({name:'xiaoming',age:18}) WriteResult({ "nInserted" : 1 }) db.students.insert({name:'qqq',age:22}) WriteResult({ "nInserted" : 1 }) db.students.insert({name:'aaa',age:55}) WriteResult({ "nInserted" : 1 }) db.students.insert({name:'zzz',age:23}) WriteResult({ "nInserted" : 1 }) db.students.insert({name:'www',age:18}) WriteResult({ "nInserted" : 1 }) db.students.insert({name:'sss',age:18}) WriteResult({ "nInserted" : 1 }) db.students.insert({name:'ddd',age:20}) WriteResult({ "nInserted" : 1 }) db.students.insert({name:'ccc',age:16}) WriteResult({ "nInserted" : 1 }) db.students.insert({name:'vvv',age:18}) WriteResult({ "nInserted" : 1 }) db.students.insert({name:'rrr',age:20}) WriteResult({ "nInserted" : 1 })

 

添加多条文档 db.students.insert([{name:'flz',age:20,sex:'男'},{name:'lanqiao',age:30,sex:'男'}])

db.students.insert([{name:'flz',age:20,sex:'男'},{name:'lanqiao',age:30,sex:'男'}]) BulkWriteResult({ "writeErrors" : [ ], "writeConcernErrors" : [ ], "nInserted" : 2, "nUpserted" : 0, "nMatched" : 0, "nModified" : 0, "nRemoved" : 0, "upserted" : [ ] })

查询文档(数据)

db.集合名称.find([conditions])

查看集合中全部数据:db.students.find() #这里会自动生成一些东西用来区分数据一样的

db.students.find() { "id" : ObjectId("6223572ecca46b2c9c9f42b0"), "name" : "xiaoming", "age" : 18 } { "id" : ObjectId("6223572ecca46b2c9c9f42b1"), "name" : "qqq", "age" : 22 } { "id" : ObjectId("6223572ecca46b2c9c9f42b2"), "name" : "aaa", "age" : 55 } { "id" : ObjectId("6223572ecca46b2c9c9f42b3"), "name" : "zzz", "age" : 23 } { "id" : ObjectId("6223572ecca46b2c9c9f42b4"), "name" : "www", "age" : 18 } { "id" : ObjectId("6223572ecca46b2c9c9f42b5"), "name" : "sss", "age" : 18 } { "id" : ObjectId("6223572ecca46b2c9c9f42b6"), "name" : "ddd", "age" : 20 } { "id" : ObjectId("6223572ecca46b2c9c9f42b7"), "name" : "ccc", "age" : 16 } { "id" : ObjectId("6223572ecca46b2c9c9f42b8"), "name" : "vvv", "age" : 18 } { "id" : ObjectId("6223572ecca46b2c9c9f42b9"), "name" : "rrr", "age" : 20 }

id也可以自己设置

db.students.insert({"name":'qi',id:1}) WriteResult({ "nInserted" : 1 }) db.students.find() { "id" : ObjectId("6223572ecca46b2c9c9f42b0"), "name" : "xiaoming", "age" : 18 } { "id" : ObjectId("6223572ecca46b2c9c9f42b1"), "name" : "qqq", "age" : 22 } { "id" : ObjectId("6223572ecca46b2c9c9f42b2"), "name" : "aaa", "age" : 55 } { "id" : ObjectId("6223572ecca46b2c9c9f42b3"), "name" : "zzz", "age" : 23 } { "id" : ObjectId("6223572ecca46b2c9c9f42b4"), "name" : "www", "age" : 18 } { "id" : ObjectId("6223572ecca46b2c9c9f42b5"), "name" : "sss", "age" : 18 } { "id" : ObjectId("6223572ecca46b2c9c9f42b6"), "name" : "ddd", "age" : 20 } { "id" : ObjectId("6223572ecca46b2c9c9f42b7"), "name" : "ccc", "age" : 16 } { "id" : ObjectId("6223572ecca46b2c9c9f42b8"), "name" : "vvv", "age" : 18 } { "id" : ObjectId("6223572ecca46b2c9c9f42b9"), "name" : "rrr", "age" : 20 } { "id" : 1, "name" : "qi" }

格式化显示:db.students.find().pretty()

查看满足条件的数据:db.students.find({name:'xiaoming'})

db.students.find({name:'xiaoming'}) { "_id" : ObjectId("6223572ecca46b2c9c9f42b0"), "name" : "xiaoming", "age" : 18 }

噩梦条件

and条件 {$and:[{expression1},{expression1},...]}

or条件 {$or:[{expression1},{expression1},...]}

and和or混用

db.table.find({$or:[{$and:[{sex:'女'},{age:18}]},{$and:[{sex:'男'},{age:{$gt:18}}]}]})

例:

db.students.find({$or:[{name:’xiaoming’},{age:18}]})

操作符 描述

$ne 不等于

$gt 大于

$lt 小于

$gte 大于等于

$lte 小于等于

例子:一写冒号就是字典,必须用{}括起来,操作符也必须用{}括起来

db.students.find({"age":{$gte:18}}) { "id" : ObjectId("6223572ecca46b2c9c9f42b0"), "name" : "xiaoming", "age" : 18 } { "id" : ObjectId("6223572ecca46b2c9c9f42b1"), "name" : "qqq", "age" : 22 } { "id" : ObjectId("6223572ecca46b2c9c9f42b2"), "name" : "aaa", "age" : 55 } { "id" : ObjectId("6223572ecca46b2c9c9f42b3"), "name" : "zzz", "age" : 23 } { "id" : ObjectId("6223572ecca46b2c9c9f42b4"), "name" : "www", "age" : 18 } { "id" : ObjectId("6223572ecca46b2c9c9f42b5"), "name" : "sss", "age" : 18 } { "id" : ObjectId("6223572ecca46b2c9c9f42b6"), "name" : "ddd", "age" : 20 } { "id" : ObjectId("6223572ecca46b2c9c9f42b8"), "name" : "vvv", "age" : 18 } { "_id" : ObjectId("6223572ecca46b2c9c9f42b9"), "name" : "rrr", "age" : 20 }

修改文档(数据)

条件+要修改的东西

db.集合名称.update(<query>,<update>,{multi:<boolean>})

修改一条数据:db.students.update({sex:'男'},{age:20}) #会覆盖掉

db.students.update({name:'aaa'},{age:88}) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

db.students.find() { "id" : ObjectId("6223572ecca46b2c9c9f42b0"), "name" : "xiaoming", "age" : 18 } { "id" : ObjectId("6223572ecca46b2c9c9f42b1"), "name" : "qqq", "age" : 22 } { "id" : ObjectId("6223572ecca46b2c9c9f42b2"), "age" : 88 } { "id" : ObjectId("6223572ecca46b2c9c9f42b3"), "name" : "zzz", "age" : 23 } { "id" : ObjectId("6223572ecca46b2c9c9f42b4"), "name" : "www", "age" : 18 } { "id" : ObjectId("6223572ecca46b2c9c9f42b5"), "name" : "sss", "age" : 18 } { "id" : ObjectId("6223572ecca46b2c9c9f42b6"), "name" : "ddd", "age" : 20 } { "id" : ObjectId("6223572ecca46b2c9c9f42b7"), "name" : "ccc", "age" : 16 } { "id" : ObjectId("6223572ecca46b2c9c9f42b8"), "name" : "vvv", "age" : 18 } { "id" : ObjectId("6223572ecca46b2c9c9f42b9"), "name" : "rrr", "age" : 20 } { "_id" : 1, "name" : "qi" }

 

指定属性修改:{$set:{age:20}} #只修改其中一部分

db.table.update({name:'xiaoming'},{$set:{age:666,sex:'xx'}})

db.students.update({name:'www'},{$set:{age:60}}) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

db.students.find() { "id" : ObjectId("6223572ecca46b2c9c9f42b0"), "name" : "xiaoming", "age" : 18 } { "id" : ObjectId("6223572ecca46b2c9c9f42b1"), "name" : "qqq", "age" : 22 } { "id" : ObjectId("6223572ecca46b2c9c9f42b2"), "age" : 88 } { "id" : ObjectId("6223572ecca46b2c9c9f42b3"), "name" : "zzz", "age" : 23 } { "id" : ObjectId("6223572ecca46b2c9c9f42b4"), "name" : "www", "age" : 60 } { "id" : ObjectId("6223572ecca46b2c9c9f42b5"), "name" : "sss", "age" : 18 } { "id" : ObjectId("6223572ecca46b2c9c9f42b6"), "name" : "ddd", "age" : 20 } { "id" : ObjectId("6223572ecca46b2c9c9f42b7"), "name" : "ccc", "age" : 16 } { "id" : ObjectId("6223572ecca46b2c9c9f42b8"), "name" : "vvv", "age" : 18 } { "id" : ObjectId("6223572ecca46b2c9c9f42b9"), "name" : "rrr", "age" : 20 } { "_id" : 1, "name" : "qi" }

 

更新集合中所有满足条件的文档:{multi:true}

db.students.update({sex:'男'},{$set:{sex:'女'}},{multi:true})

db.students.update({sex:'男'},{$set:{sex:'女'}},{multi:true}) WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })

db.students.find() { "id" : ObjectId("6223572ecca46b2c9c9f42b0"), "name" : "xiaoming", "age" : 18 } { "id" : ObjectId("6223572ecca46b2c9c9f42b1"), "name" : "qqq", "age" : 22 } { "id" : ObjectId("6223572ecca46b2c9c9f42b2"), "age" : 88 } { "id" : ObjectId("6223572ecca46b2c9c9f42b3"), "name" : "zzz", "age" : 23 } { "id" : ObjectId("6223572ecca46b2c9c9f42b4"), "name" : "www", "age" : 60 } { "id" : ObjectId("6223572ecca46b2c9c9f42b5"), "name" : "sss", "age" : 18 } { "id" : ObjectId("6223572ecca46b2c9c9f42b6"), "name" : "ddd", "age" : 20 } { "id" : ObjectId("6223572ecca46b2c9c9f42b7"), "name" : "ccc", "age" : 16 } { "id" : ObjectId("6223572ecca46b2c9c9f42b8"), "name" : "vvv", "age" : 18 } { "id" : ObjectId("6223572ecca46b2c9c9f42b9"), "name" : "rrr", "age" : 20 } { "id" : 1, "name" : "qi" } { "id" : ObjectId("62236218cca46b2c9c9f42ba"), "name" : "flz", "age" : 20, "sex" : "女" } { "_id" : ObjectId("62236218cca46b2c9c9f42bb"), "name" : "lanqiao", "age" : 30, "sex" : "女" }

删除文档(数据)

db.集合名称.remove(<query>,{justOne:<boolean>})

删除集合中所有的文档:db.table.remove({})

删除集合中满足条件的所有文档 db.table.remove({sex:'男'})

只删除集合中满足条件的第一条文档:{justOne:true}

db.table.remove({sex:'男'},{justOne:true})

04 Python操作mongodb,Python与MogoDB交互

pymongo

安装 pip install pymongo

建立连接:pymongo.MongoClient()

指定数据库:db=client[数据库名]

指定集合:collection=db[集合名]

官方推荐

查找文档:find_one() 查找所有:find()

添加文档:insert_one 添加多条:insert_many()

删除文档:delete_one 删除多条:delete_many()

修改文档:update_one 修改多条:update_many()

标签:name,ObjectId,mongoDB,age,db,18,id
来源: https://www.cnblogs.com/python20020105/p/mongDB.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有