我的 mongodb 入门笔记

安装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})

学习未完待补充。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值