安装配置
- 安装
D:\MongoDB
- 创建数据存放文件夹
D:\data\mongo\db
D:\data\mongo\log
- 配置文件
新建D:\MongoDB\Server\3.6\mongod.cfg
systemLog:
destination: file
path: d:\data\mongo\log\mongod.log
storage:
dbPath: d:\data\mongo\db
-
测试:
D:\MongoDB\Server\3.6\bin>mongod --dbpath d:\data\mongo\db
-
安装服务
关闭测试打开的窗口
D:\MongoDB\Server\3.6\bin>mongod.exe --config "D:\MongoDB\Server\3.6\mongod.cfg" --install
可视化管理工具nosql
shell
F6执行语句
常用命令
-
查看所有数据库:
show dbs
查看当前数据库:db
切换数据库,不存在则创建:use test1
删除当前数据库:db.dropDatabase()
-
创建集合:
db.createCollection('stu')
查看数据库的所有集合:show collections
删除集合:db.stu.drop()
-
在集合中插入数据:
db.stu.insert({name:'aaa', gender:1})
db.stu.insert({name:'bbb', gender:0, age:20})
db.stu.insert({name:'ccc', gender:1, stu_id:123456})
查看集合的所有数据:db.stu.find()
更新数据:db.stu.update( {name:'aaa'}, {name:'abc'} )
保存数据(_id存在则修改,不存在则新建):db.stu.save({_id:'20180102','name':'John'})
删除数据(justOne表示只删除匹配到的第一条数据):
db.stu.remove({gender:1}, {justOne:true})
-
save和insert函数都可以向collection里插入数据,但两者是有两个区别:
一、使用save函数里,如果原来的对象不存在,那他们都可以向collection里插入数据,如果已经存在,save会调用update更新里面的记录,而insert则会忽略操作
二、insert可以一次性插入一个列表,而不用遍历,效率高, save则需要遍历列表,一个个插入。 -
条件查询
show collections
db.createCollection('course')
db.course.insert({title:'java', count:10})
db.course.insert({title:'linux', count:15})
db.course.insert({title:'web', count:20})
db.course.insert({title:'django', count:18})
db.course.insert({title:'web', count:22})
db.course.find()
db.course.find({title:'爬虫'})
db.course.insert({title:'mysql', count:15})
db.course.find({count:{$gte:15}})
db.course.find({count:{$gt:15}, title:'web'})
db.course.find({$or:[{count:{$lt:20}}, {title:'web'}]})
python连接mongodb
import pymongo
# 创建连接
client = pymongo.MongoClient("localhost", 27017)
# 选择数据库
db = client['test2']
# 选择集合
collec = db.mycollec
# 插入多条记录
data = [
{'name': '马化腾', 'age': 46},
{'name': '丁磊', 'age': 48},
{'name': '张朝阳', 'age': 51}
]
collec.insert(data)
# 查看数据
result = collec.find_one()
print(result['name'], result['age'])