安装mongodb
上 mongodb官网 下载对应的安装包
配置运行
手动在C D E盘等根目录下创建data文件夹 ,然后在data目录下创建db文件夹
我的是E:\data\db
从mongodb目录的bin中启动mongod.exe 。
mongod --dbpath e:\data\db
执行成功会输出一大串你也许看不懂的东西
mongod --bind_ip youIPaddress --logpath "e:\data\log\mogodb.log" --logappend --dbpath "e:\data\db" --port 8000 --serviceName "mydb" --serviceDisplayName 'mydb2' --install
参数(前面两短横线) | 描述 |
---|---|
–bind_ip | 绑定服务IP,若127.0.0.1则只能本机访问,不指定默认本地所有ip |
–logpath | 定mongodb日志文件,注意不是目录 |
–logappend | 使用追加方式写日志 |
–dbpath | 指定数据库路径 |
–port | 指定服务端口号,默认27017 |
–serviceName | 指定服务名称 |
–serviceDisplayName | 指定服务名称,多个mongodb服务时执行。 |
–install | 指定作为一个Windows服务安装。 |
执行
cmd命令行执行 mongod.exe 启动
打开日志文件在开头不远处有这么一句话:
Service can be started from the command line with 'net start mydb' //也是启动的
c:\**\c**> mongod
连接
输入下面语句连接 ,成功会看到 mongodb shell version 3.4.4(这是我下载的版本) 测试一个简单的加法运算, 成功。
$ mongo localhost:8000 //端口我上面设置的
//完整版
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
命令
创建数据库
$ use dbname //不存在则创建,存在则切换到该数据库
$ show dbs //显示所有数据库
$ db //查看当前数据库或集合
$ show tables //查看集合(表)
//test为默认库,你没创建则集合存在test中
db.dbname.insert({"name":"hello"}) //插入数据到库中
删除数据库
$ use dbname //切换至库
$ db.dropDatabase() //删除库 注意大小写
$ db.collection.drop() //删除集合(表)
插入文档/对象 (增)
$ db.collection.insert( document/object ) //类似插入行
//例子中cdme是集合(表)名,如无,mongodb会自动创建并写入。
db.cdme.insert({
"title":"lesson",
"by":"runoob",
"url":"www.baidu.com",
"tags":["mongodb", "database", "hello"]
})
//也可以将数据定义为变量 如:
var dc = {
"title":"lesson",
"by":"runoob",
"url":"www.baidu.com",
"tags":["mongodb", "database", "hello"]
}
//执行如下:
db.cdme.insert(dc);
删除文档/对象 (删)
//基本语法格式
db.cname.remove(
<query>,
{
justOne:<boolean>, //true 则只删一个文档
writeConcern:<document> //抛出异常级别
}
)
db.cname.remove({
"title":"hello"
}) //删除title为hello的所有数据
db.cname.remove({
"title":"hello"
},
{
justOne:true
}
) //删除一条title为hello的数据
//删除所有
db.cname.remove({})
更新文档/对象 (改)
//基本格式
db.cname.update(
<query>, //查询条件
<update>, //update的对象及一些更新操作符($,$inc等)
{
upsert:<boolean>, //如果不存在update的记录,是否插入新的 默认false不插入新记录。
multi:<boolean>, //默认false只更新第一条找到的记录 ,如改true则全部更新按条件查询出来的记录
writeConcern:<document> //抛出异常级别
})
//改一条:如下例将标题hello更新为mongoDB:
db.cname.update(
{"title":"hello"},
{$set:{"title":"mongoDB"}}
)
//改多条:
db.cname.update(
{"title":"hello"},
{$set:{"title":"mongoDB"}},
{multi:true}
)
//传入文档/对象替换已有的文档
db.cname.save(
<document>,
{ writeConcern:<document>}
)
//
db.cname.save(dc)
查询文档/对象 (查)
//基本格式
db.cname.find(query,projection)
//query:指定查询条件 projection:指定查询时返回的键,默认返回所有键值,省略即可
db.cname.find() //格式化显示文档 易读
db.cname.findOne() //只返回一个文档
//等于
db.cname.find({"age":100}).pretty()
//小于
db.cname.find({"age":{$lt:60}}).pretty()
//小于等于
db.cname.find({"age":{$lte:60}}).pretty()
//大于
db.cname.find({"age":{$gt:18}}).pretty()
//大于等于
db.cname.find({"age":{$gte:18}}).pretty()
//不等于
db.cname.find({"age":{$ne:56}}).pretty()
//AND条件
db.cname.find({key1:v1,k2:v2}).pretty()
//OR条件
db.cname.find({
$or:[{k1:v1},{k2:v2}}]
})
//如下例:
db.cname.find({
$or:[{"city":"beijing"},{"age":60}]
}).pretty()
//AND + OR 联合使用
db.cname.find(
{k1:v1},
$or:[{k2:v2},{k3:v3}]
).pretty()
//$type 类型检索
Double 1
String 2
Object 3
Array 4
Boolean 8
Date 9
Null 10
Regexp 11
JavaScript 13
...
db.cname.find({"title":{$type:2}})
// limit() 读取定量记录
db.cname.find().limit(2) //显示2条记录,不写参数则显示所有记录
//skip() 跳过定量记录 skip参数默认为0
db.cname.find().skip(10).limit(20) //跳过前10条记录,显示接下来的20条
//sort() 排序方法
db.cname.find().sort({key:1}) //key:1 升序排 -1 降序排
db.cn.find({"city":"beigjing"}).sort({"age":1})