mongodb学习

Mongodb是NoSQL的一种,NoSQL——No only SQL,非关系型数据库,并不能直接理解为“没有关系的数据库”,形象来说NoSQL是传统关系型数据库的功能阉割版本,减少了很少用的功能而已。NoSQL基于键值对,而且不需要经过SQL层的解析,所以具有不错的性能。

安装过程:

官网下载社区版本,“下一步”安装完成。

在安装目录F:\Mongodb下,新建Data文件夹,在Data文件夹下新建db文件夹和log文件夹,在log文件夹下新建MongoDB.log文件

CMD进入安装目录bin下,配置数据库路径:mongod–dbpath F:\mongodb\data\db

注意:这时候会卡在waiting for connections on port 27017,这是因为Mongodb已经启动的原因,再打开一个CMD,进入安装目录bin下,启动mongo.exe,就可以使用Mongodb了。

注册Mongodb service:

管理员打开CMD进入安装目录bin,输入:

mongod -dbpath "F:\MongoDB\Data\db" -logpath "F:\MongoDB\Data\log\MongoDB.log" -install -serviceName "MongoDB"

服务启动

net start mongodb

服务关闭

Net stop mongodb

参数

含义

--bind_ip

绑定ip

--logpath

指定存放log的路径

--logappend

使用追加方式写日志

--dbpath

指定mongodb的存储路径

--port

指定端口号,默认27017

--serviceName

指定服务名称

--install

作为一个windows服务安装

--remove

将windows服务删除

        

mongoDB中的概念

SQL概念

Mongodb概念

数目

Database

Database

数据库

Table

Collection

数据库表/集合

Row

Document

数据行/文档

Column

Field

数据字段列/域

Index

Index

索引

Primary key

Primary key

主键/Mongodb自动将_id字段设置为主键

Mongodb中的document的键值对是有序的,顺序不同这两个document就是不同的,document是区分大小写和值类型的。

Mongodb常见数据类型

String:字符串,在Mongodb中只有utf-8字符才是合法的。

Integer:整数。

Boolean:布尔类型。

Double:双精度浮点数。

Array:用于将数组或列表或多个值存储到一个键。

Timestamp:时间戳,用于记录文档修改或添加的具体时间。

Object:用于内嵌文档。

Null:用于创建空值。

Date:日期时间,用UNIX时间格式存储当前日期或时间。

Binary Data:二进制数据。

 

创建数据库:

Use database_name(如果数据库存在,则加载数据库,如果不存在则创建数据库)

查询数据库:

Show dbs(显示有数据的数据库)

删除数据库:

Db.dropDatabase()(删除当前正在使用的数据库)

 

集合中文档的增删改查

db.collection_name.insert(document)

查询文档

db.collection_name.find().pretty()(格式化显示)

 

条件查询

1.      等于{<key>:<value>}

db.user.find({“age”:18}).pretty()

2.      不等于{<key>:{$ne:<value>}}

db.user.find({“age”:{$ne:18}}).pretty()

3.      小于{<key>:{$lt:<value>}}

db.user.find({“age”:{$lt:18}}).pretty()

4.      小于或等于{<key>:{$lte:<value>}}

db.user.find({“age”:{$lte:18}}).pretty()

5.      大于{<key>:{$gt:<value>}}

db.user.find({“age”:”{$gt:18}}).pretty()

6.      大于或等于{<key>:{$gte:<value>}}

db.user.find({“age”:{$gte:18}}).pretty()

and查询

db.collection_name.find({key1:value1,key2:value2}).pritty()

or查询

db.collection_name.find($or:[{key1:value1},{key2:value2}]).pritty()

可以使用and和or联合查询

更新文档

update()

db.collection_name.update(

         query,#查条件

         update,#更新数据

         {

                   upsert:Boolean,#如果没有是否插入新航,默认false

multi:Boolean,#如果找到多条需要更新的数据,是否全部更新,默认false

writeConcern:document#设置抛出异常的级别

}

)

把name为a的文档,改成b

db.user.update(

         {

                   “name”:”a”

},

{

         $set”:{

                   “name”:”b”

}

},

{

         multi:true

}

)

save()通过传入文档替换已有文档

db.collection_name.save(

         document,#准备写入数据库的数据

{

         writeConcern:document #报错级别

}

)

#根据主键找到数据并修改

db.python.save({

         “_id”:ObjectID(),

         “name”:”lily”,

         “description”:”thisis a pretty girl !!!”,

“age”:18

})

删除文档

db.collection_name.remove(

         query,#删除之前先查询,如果没有条件,则删除所有

         {

                   justOne:Boolean,#只删除一个文档,默认false

writeConcern:document#异常抛出级别

}

)

#删除name为a的文档

db.user.remove({

         “name”:”a”

})

 

安装mongodb第三方库

pip install pymongo

导入pymongo

from pymongo import MongoClient

建立连接方法有

1.      client = MongoClient()

2.      client = MongoClient(‘localhost’,27017)

3.      client =MongoClient(‘mongodb://localhost:27017/’)

获取数据库

1.            db = client.hellodb

2.            db = client[‘hellodb’]

获取一个集合

1.      user_collection = db.user

2.      user_collection = db[‘user’]

插入文档

1.      插入一行

user = {

           “name”:”a”

           “age”:19,

           “sex”:”male”

}

user_id = user_collection.insert(user)

2.      插入多行

一个表含多个字典类型即可

查询文档

collection.find_one()        返回一条或者none

collection.find()        返回多条或者none

collection.find().count()   返回条数

修改文档

res = user_collection.update({“name”:”a”},{“$set”:{“name”:””b”}})

修改多条udate_many()

删除文档

res = user_collection.remove({“name”:”a”})


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值