MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
http://www.runoob.com/mongodb/mongodb-tutorial.html MongoDB 教程
安装
在win7下的安装
http://blog.csdn.net/mzbonnt/article/details/51461331 Windows下Mongodb安装及配置 (在实验,未成功)
这里啰嗦几句,我的电脑配置是win7 64位。试了 3.6.0 、3.7.1版本,都是装一半就停了。2.7.8是老版本,装上去还有别的问题。
最后3.2.6装成功了,并且能启动服务(只是不能随意修改mongo.conf的参数,会失败,所以刚开始配环境先不要折腾参数了罢)。
下载安装文件:
- https://www.mongodb.org/dl/win32/x86_64-2008plus-ssl 到这个网址下载下面这个文件,安装mongo
- http://downloads.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-3.2.6-signed.msi
安装路径:
- C:\Program Files\MongoDB\Server\3.2\ (需要手工创建下面几个文件、文件夹)
- 创建目录:C:\Program Files\MongoDB\Server\3.2\data\
- 创建目录:C:\Program Files\MongoDB\Server\3.2\logs\
- 创建文件:C:\Program Files\MongoDB\Server\3.2\logs\mongo.log
- 创建文件: C:\Program Files\MongoDB\Server\3.2\mongo.conf (拷贝下面mongo.conf的内容,先不要更改参数)
mongo.conf
dbpath=C:\Program Files\MongoDB\Server\3.2\data #数据库路径 logpath=C:\Program Files\MongoDB\Server\3.2\logs\mongo.log #日志输出文件路径 logappend=true #错误日志采用追加模式 journal=true #启用日志文件,默认启用 quiet=true #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false port=27017 #端口号 默认为27017
启动服务:
- cd C:\Program Files\MongoDB\Server\3.2\bin\
- mongod --config "C:\Program Files\MongoDB\Server\3.2\mongo.conf" --install --serviceName "MongoDB"
- net start MongoDB (启动服务)
- http://127.0.0.1:27017/ (看到有信息就说明成功了)
- mongod.exe --remove --serviceName "MongoDB" (卸载服务)
- net stop MongoDB (关闭MongoDB服务)
使用:
http://www.runoob.com/mongodb/mongodb-tutorial.html MongoDB教程
一般操作:
- cd C:\Program Files\MongoDB\Server\3.2\bin\
- mongo (MongoDB 后台管理 Shell,下面可以执行数据库语句)
- db 显示当前数据库
- use housedb 进入某数据库,没有则创建
- db.dropDatabase() 删除数据库(要先进入某数据库 use housedb ,再删除当前数据库)
- show dbs 数据库列表
- show tables 显示当前数据库中的数据集(所有表)
- db.tablename.drop() 删除数据集(表)
对数据集(表)的操作:
- db.tablename.insert({"name":"教程"}) 插入数据
- db.tablename.find() 查询数据(表)
- db.tablename.find({name:"教程"}) 查询数据(带条件的查询)
- db.tablename.save({_id:ObjectId("5a7ee9eea58e78eea04195b6"),"name":"教程123456"}) 修改某一条数据
- db.tablename.remove({}) 删除所有数据
- db.tablename.remove({'name':'教程'}) 删除符合条件的数据(有几条删几条)
- db.tablename.remove({'name':'教程'},1) 删除符合条件的数据(只删一条)
查询条件:
- 等于 db.tablename.find({"by":"教程"}).pretty() where by = '教程'
- 小于 db.tablename.find({"likes":{$lt:50}}).pretty() where likes < 50
- 小于或等于 db.tablename.find({"likes":{$lte:50}}).pretty() where likes <= 50
- 大于 db.tablename.find({"likes":{$gt:50}}).pretty() where likes > 50
- 大于或等于 db.tablename.find({"likes":{$gte:50}}).pretty() where likes >= 50
- 不等于 db.tablename.find({"likes":{$ne:50}}).pretty() where likes != 50
- AND 条件 db.tablename.find({key1:value1, key2:value2}).pretty() where key1=value1 AND key2=value2
- OR 条件 db.tablename.find({$or: [{key1: value1}, {key2:value2}]}).pretty() where key1=value1 OR key2=value2
- 排序 db.tablename.find({}).sort({"likes":-1}) 参数可以为1或-1
python调用MongoDB
from pymongo import MongoClient conn = MongoClient('127.0.0.1', 27017) db = conn.housedb # 连接数据库,没有则自动创建 my_set = db.student_tb # 使用集合,没有则自动创建 # 插入数据 for i in range(10): my_set.insert({"name":"zhangsan","age":10+i}) # 查询 for i in my_set.find({"age": {"$gt": 14}}): print(i)
...