MongoDB(一)---基础命令

> show dbs    -- 查看数据库列表

> use admin   --创建admin数据库,如果存在admin数据库则使用admin数据库

> db   ---显示当前使用的数据库名称

> db.dropDatabase()  --删当前使用的数据库

> db.version()   --当前数据库版本

> db.getMongo()  --查看当前数据库IP+端口号。

 

> show collections    --查看数据库中有那些个集合(表)

> db.dropDatabase() --删除当前数据库

> db.user.drop()  --删除当前集合(表)user

> db.user.insert({"userid":1,success:true,"time":Date()}) ---如果有user集合,则插入数据,没有,

则创建user集合(userid为int类型,seccess为Boolean类型,time为日期类型。

并且,mongodb中的key,不加双引号也可以,在入库后,会自动加上双引号,如success)

> db.user.find({}) --查寻user集合所有数据,如下有个截图,很好说明find用法。

例如:db.user.find({$or:[{"name":lili},{"age":18}]}) ,查寻name=lili或者age=18的用户。

 

指定 AND 和 OR 条件

通过使用附加的子句,你可以指定匹配文档的精确条件。

“在下面的示例中,复合查询文档选择集合中`status`` 等于 "A" 并且 要么 age 小于 ($lt) 30 要么 type等于 1 的所有文档:

实例:查询座位数为4,并且,司机ID等于52275或者车辆ID大于等于148小于等于152的所有司机

db.getCollection('driver').find({
            "seatNum":4,
            $or:[ {"driverId":52275},
                  {"carId" :
                      {$lte:152,$gte:148}
                  }
            ]
    
    })

> db.user.insert([{"_id" :6, "grades" : [ 80, 85, 90 ],"score":[10,40,54]}, {"_id" :7, "grades" : [ 88, 90, 92 ],"score":[100,30,51]}]); //一次插入两个文档(即两行)

                        关于_id:MongoDB中保留关键字,如果插入记录的记录中没有_id,数据库自动生成,如果有,刚使用记录中的_id

 

>  db.students.update({'_id':7},{$set:{'score':[]}}) --更新id=7的这第记录,并把score的值更新为一个空数组。

update详细语法:
update() 方法用于更新已存在的文档。语法格式如下:
db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> } )

参数说明:

query : update的查询条件,类似sql update查询内where后面的。

update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的

upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。

multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

writeConcern :可选,抛出异常的级别。

              注意:3.2版本后,提供了,db.user.updateOne({})与db.user.updateMany({})方法,更新一条与多条。

db.user.remove({})  --删除user集合中所有数据。

remove详细语法:

db.collection.remove(<query>,{justOne: <boolean>,writeConcern: <document>})

参数说明:

query :(可选)删除的文档的条件。

justOne : (可选)如果设为 true 或 1,则只删除一个文档。

writeConcern :(可选)抛出异常的级别。

 注意:3.2版本后,提供了,db.user.removeOne({})与db.user.removeMany({})方法,删除一条与多条。

> db.user.find({"name":“lili”},{"age":1,"_id":0}).limit(2),skip(3)  --查寻出name=lili的所有数据,并且结果集中,只显示age,_id无需显示,最后,跳过(skip)三行后,对其结果,只(limit)显示两行数据 ,(0表示不显示 1表示显示)

 

 例如:插入如下数据:

db.user.insert([

{"name":"lili","age":10},

{"name":"lili","age":11},

{"name":"lili","age":12},

{"name":"lili","age":13},

{"name":"lili","age":14},

{"name":"lili","age":15},

{"name":"lili","age":16}

 

])

 

          查寻结果为:{“age”:13.0}{"age":14.0}

> db.user.find({"age" : {$type : 2}})  --查寻user集合中,年龄字段为String的结果。(2=String),使用$type:2

> db.user.find({}).sort({"age":1})  --对age按升序排列(1 为升序排列,而-1是用于降序排列) -当查询时同时使用sort,skip,limit,无论位置先后,最先执行顺序 sort再skip再limit

> db.user.ensureIndex({"name":1,"age":-1})  --设置name字段按升序创建索引,设置age字段按降序创建索引,关系型数据库中称作复合索引

> db.user.count()  --查寻user集合中总共有多少条文档,及关系行数据库中表中有多少row。

db.user.aggregate([{$group:{_id:'$name',total:{$sum:"$age"}}}]) --对键name取出对应Value值后分组,然后对键age取出Value值后相加,当_id=null时,不进行分组,此时类似sql中的:select count(*) as total from user.

> mongodump -h 192.168.1.100 -d test -o /home/bobo/ --(进入mongo安装目录),备份ip地址为192.168.1.100的mongo中test数据库中的数据,数据放到/home/bobo/目录下。

mongorestore -h 192.168.1.100:27017 -d test /home/bobo/  --恢复数据。

日期查询:大于

 db.driver.find({"laterTime":{$gt:new Date()}})

db.getCollection('driver').find({'laterTime':{$gt:ISODate("2019-02-01T21:00:00.000+08:00")}})

ISODate("2019-02-01T21:00:00.000+08:00").toLocaleString(),时间转字符串:Friday, February 01, 2019 21:00:00

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值