#启动服务
net start MongoDB
#停止服务
net stop MongoDB
#进入mongo shell 方式
mongo
db #查看当前数据库是那个
#插入一条数据
db.runoob.insert({x:10})
#查找数据
db.runoob.find()
show dbs
#连接mongodb
mongodb://[username:password@]host1[:port1][,host2[:port2],…[,hostN[:portN]]][/[database][?options]]
#例子:
mongodb://admin:123456@localhost/
#删除数据库
db.dropDatabase()
#创建和删除集合
#创建集合
语法:db.createCollection(name, options)
db.createCollection(“runoob”)
#删除集合
db.dropDatabase()
#删除集合
db.collection.drop()
例子: db.eric.drop()
#显示所有集合
show collections
#显示所有集合
show tables
#插入一条数据
db.col.insertOne({_id:“languag11”,title:“mongoDb”,description: “Mongodb 是一个Nosql”,tags:[“sdd”,“lill”,“wallace”]})
#插入多条doucument
db.col.insertMany([{_id:“language2”,title:“mongoDb”,description: “Mongodb是一个Nosql”,tags:[“sdd”,“lill”,“wallace”]},{_id:“language3”,title:“mongoDb”,description: “Mongodb 是一个Nosql”,tags:[“sdd”,“lill”,“wallace”]},{_id:“language4”,title:“mongoDb”,description: “Mongodb 是一个Nosql”,tags:[“sdd”,“lill”,“wallace”]},{_id:“language5”,title:“mongoDb”,description: “Mongodb是一个Nosql”,tags:[“sdd”,“lill”,“wallace”]}])
#查询文档
db.col.find()
#更新集合
db.col.update({“title”:“mongoDb”},{$set:{“title”:“mongo是Nosql”}}))
#更新多个集合值时
multi: 默认是false 不更新所有只更新一条数据。 为true时,更新所有的值。
db.col.update({“title”:“mongoDb”},{$set:{“title”:“mongo是Nosql”}},{multi:true}))
db.coll.insertMany([{title:“mongoDb”,description: “Mongodb是一个Nosql”,tags:[“sdd”,“lill”,“wallace”],“count”:5},{title:“mongoDb”,description: “Mongodb 是一个Nosql”,tags:[“sdd”,“lill”,“wallace”],“count”:10},{title:“mongoDb”,description: “Mongodb 是一个Nosql”,tags:[“sdd”,“lill”,“wallace”],“count”:3},{title:“mongoDb”,description: “Mongodb是一个Nosql”,tags:[“sdd”,“lill”,“wallace”],“count”:90}])
db.col.update({“count”:{KaTeX parse error: Expected 'EOF', got '}' at position 5: gt:3}̲},{set:{“description”:“我很喜欢MONGODB!”}})
#优雅的格式展示二进制数据:
db.col.find().pretty()
#等值的查询
db.coll.find({“count”:3}).pretty()
#大于的查询
db.coll.find({count:{$gt:50}})
#or条件查询
db.coll.find({$or:[{“titel”:“mongoDb”},{“count”:5}]})
#and条件查询
db.coll.find({“key”:value,“key1”:value})
(>) 大于 - $gt
(<) 小于 - $lt
(>=) 大于等于 - $gte
(<= ) 小于等于 - $lte
#查询准备数据:
db.jcys.insert({
title: ‘PHP 教程’,
description: ‘PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。’,
by: ‘菜鸟教程’,
url: ‘http://www.runoob.com’,
tags: [‘php’],
likes: 200
})
db.jcys.insert({title: ‘Java 教程’,
description: ‘Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。’,
by: ‘菜鸟教程’,
url: ‘http://www.runoob.com’,
tags: [‘java’],
likes: 150
})
db.jcys.insert({title: ‘MongoDB 教程’,
description: ‘MongoDB 是一个 Nosql 数据库’,
by: ‘菜鸟教程’,
url: ‘http://www.runoob.com’,
tags: [‘mongodb’],
likes: 100
})
#查询likes大于 100的数据
db.jcys.find({likes:{$gt:100}}).pretty()
#查询likes大于等于 100的数据
db.jcys.find({likes:{$gte:100}}).pretty()
#查询likes小于 150的数据
db.jcys.find({likes:{$lt:150}}).pretty()
#查询likes小于等于 150的数据
db.jcys.find({likes:{$lte:150}}).pretty()
#查询likes小于200 大于100的数据
db.jcys.find({likes:{
l
t
:
200
,
lt:200,
lt:200,gt:100}}).pretty()
#KaTeX parse error: Expected '}', got 'EOF' at end of input: …s.find({likes:{type: 1}})
#KaTeX parse error: Expected '}', got 'EOF' at end of input: …jcys.find({by:{type: 2}})
db.jcys.find({by:{$type: “string”}})
#取出指定数量的数据
db.jcys.find().limit(1)
#跳过指定数量的数据 :skip 默认值是 0
db.jcys.find().limit(1).skip(1)
#排序,1代表升序。 -1 代表降序
db.jcys.find().sort({“likes”:1}).pretty()
db.jcys.find().sort({“likes”:-1}).pretty()
#创建升序索引
db.jcys.createIndex({“title”:1})
#创建降序索引
db.jcys.createIndex({“title”:-1})
1、查看集合索引
db.col.getIndexes()
2、查看集合索引大小
db.col.totalIndexSize()
3、删除集合所有索引
db.col.dropIndexes()
4、删除集合指定索引
db.col.dropIndex(“索引名称”)
#聚合运算:数据准备
db.newjcys.insertMany([{title: ‘MongoDB Overview’, description: ‘MongoDB is no sql database’, by_user: ‘runoob.com’,url: ‘http://www.runoob.com’, tags: [‘mongodb’, ‘database’, ‘NoSQL’],likes: 100},{title: ‘NoSQL Overview’,description: ‘No sql database is very fast’,by_user: ‘runoob.com’,url: ‘http://www.runoob.com’,tags: [‘mongodb’, ‘database’, ‘NoSQL’],likes: 10},{title: ‘Neo4j Overview’,description: ‘Neo4j is no sqldatabase’,by_user: ‘Neo4j’, url: ‘http://www.neo4j.com’, tags: [‘neo4j’, ‘database’, ‘NoSQL’],likes: 750}])
#分组: 按照by_user进行分组,并统计个数
db.newjcys.aggregate([{KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup : {_id : "by_user", num_tutorial : {$sum : 1}}}])
#数据备份:没设置密码,是本机的情况下。
mongodump -o C:\data\mongo
mongodump -h dbhost -d dbname -o dbdirectory
#数据恢复
mongorestore -d test C:\data\mongo\test
#查看运行状态
mongostat 命令
#查看mongo 运行时占用资源比较多
mongotop 命令