Mongodb 2

mongodb使用

回顾mysql

  • 所有表的集合 --库
  • 每一组信息 --表
  • 每一条信息 --字段

但是在mongodb中

  • 作为外层的容器还是叫databses
  • 在mongodb中表这个东西已经不存在了而叫做 集合(collection)
  • 在mongodb中字段这个东西也不存在了而叫做文档(document)

mongodb使用

  • 连接
    语法:mongo空格127.0.0.1:27017
E:\MongoDB\bin>mongo
MongoDB shell version v3.4.15-35-gae53ff0702
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.15-35-gae53ff0702
Server has startup warnings:
2019-08-13T14:53:41.467+0800 I CONTROL  [initandlisten]
2019-08-13T14:53:41.467+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2019-08-13T14:53:41.467+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2019-08-13T14:53:41.467+0800 I CONTROL  [initandlisten]
  • 操作
  1. 查看数据库:show空格dbs;
> show dbs
admin  0.000GB
local  0.000GB
mgd    0.000GB
  1. 切换/新增(如果有就是切换 如果没有就是新增)数据库
    use 空格 要切换或者新增的库
> use mgd
switched to db mgd

注意新增有问题

> show dbs
admin  0.000GB
local  0.000GB
mgd    0.000GB

当我们输入一个没有的库名的时候本应该是新增 但是当我们输入之后发现并没有新增 原因是(其实新增了只是里面没有集合所以不显示)

  1. 创建集合:
    db.要创建的集合名字.insert({k:v})
> db.chuichui.insert({"name":"大锤",age:20,sex:"男"})
WriteResult({ "nInserted" : 1 })
  1. 查看集合
    show空格collections
> show collections
chuichui
  1. 删除
    必须先切换到你要删的库 use空格库名
    db.dropDatabase()
  2. 删除集合
    必须先要切换到指定要删除集合的库中
    db.要删除的集合名.drop()
> use mgd
switched to db mgd
> db.chuichui.drop()
true
> show collections
>

基本的外围操作完了

上面的内容重要程度没有下面高必须要记住:

1. 要对集合进行增删改查那么必须要有集合

只创建集合的语法
db.createCollection(“要创建集合的名字”);

> db.createCollection("NO13")
{ "ok" : 1 }

2. 新增

最单纯的新增(基础语法)
db.要插入的集合名.insert({k:v})

> db.NO13.insert({"name":"王大锤",age:20,sex:"男"})
WriteResult({ "nInserted" : 1 })

为了查看我们是否新增成功 使用查询语句来查看
db.要查询的集合.find()

> db.NO13.find()
{ "_id" : ObjectId("5d53b24708a6149f969e8df2"), "name" : "王大锤", "age" : 20, "sex" : "男" }
{ "_id" : ObjectId("5d53b2a408a6149f969e8df3"), "name" : "王铁锤", "age" : 30, "sex" : "男" }
{ "_id" : ObjectId("5d53b2c308a6149f969e8df4"), "name" : "王木锤", "age" : 16, "sex" : "女" }
{ "_id" : ObjectId("5d53b2e208a6149f969e8df5"), "name" : "王铜锤", "age" : 18, "sex" : "男" }
{ "_id" : ObjectId("5d53b2f308a6149f969e8df6"), "name" : "王金锤", "age" : 19, "sex" : "男" }
{ "_id" : ObjectId("5d53b30a08a6149f969e8df7"), "name" : "王银锤", "age" : 23, "sex" : "女" }

大家会发现id是自动添加的,比较难记
手工新增id
db.要插入的集合名.insert({"_id":1,k:v})

> db.NO13.insert({"_id":1,"name":"王小锤",age:13,sex:"男"})
WriteResult({ "nInserted" : 1 })

既然是手工指定那么千万不要重名

3. 多条插入

db.要插入的集合.insert([{k:v},{k:v}])

> db.NO13.insert([{"name":"王钢锤"},{"name":"王石锤"}])
BulkWriteResult({
        "writeErrors" : [ ],
        "writeConcernErrors" : [ ],
        "nInserted" : 2,
        "nUpserted" : 0,
        "nMatched" : 0,
        "nModified" : 0,
        "nRemoved" : 0,
        "upserted" : [ ]
})

4. 查询

  1. 按照条件进行查询

db.要查询的集合名.find({k:v})

> db.NO13.find({age:18})
{ "_id" : ObjectId("5d53b2e208a6149f969e8df5"), "name" : "王铜锤", "age" : 18, "sex" : "男" }
  1. 格式化查询数据
    Db.要查询的数据find({k:v},{k:0/1}) 0不显示 1显示
> db.NO13.find({"name":"王金锤"},{"age":1,"_id":0})
{ "age" : 19 }
> db.NO13.find({"age":20},{"sex":1,"_id":0})
{ "sex" : "男" }
  1. 查询匹配更多内容
    Db.要查询的数据.find({查询的内容1,查询的内容2···})
> db.NO13.find({"name":"王银锤",sex:"女"})
{ "_id" : ObjectId("5d53b30a08a6149f969e8df7"), "name" : "王银锤", "age" : 23, "sex" : "女" }
  1. 条件查询
    Db.查询的集合.find({“要查询的k”:{条件:值}})
    条件
  • (>) 大于 - $gt
  • (<) 小于 - $lt
  • (>=) 大于等于 - $gte
  • (<= ) 小于等于 - $lte
  • (!=) 不等于 - $ne:
    代码:
> db.NO13.find({"age":{$gt:19}})
{ "_id" : ObjectId("5d53b24708a6149f969e8df2"), "name" : "王大锤", "age" : 20, "sex" : "男" }
{ "_id" : ObjectId("5d53b2a408a6149f969e8df3"), "name" : "王铁锤", "age" : 30, "sex" : "男" }
{ "_id" : ObjectId("5d53b30a08a6149f969e8df7"), "name" : "王银锤", "age" : 23, "sex" : "女" }
> db.NO13.find({"age":{$lt:19}})
{ "_id" : ObjectId("5d53b2c308a6149f969e8df4"), "name" : "王木锤", "age" : 16, "sex" : "女" }
{ "_id" : ObjectId("5d53b2e208a6149f969e8df5"), "name" : "王铜锤", "age" : 18, "sex" : "男" }
{ "_id" : 1, "name" : "王小锤", "age" : 13, "sex" : "男" }
> db.NO13.find({"age":{$gte:19}})
{ "_id" : ObjectId("5d53b24708a6149f969e8df2"), "name" : "王大锤", "age" : 20, "sex" : "男" }
{ "_id" : ObjectId("5d53b2a408a6149f969e8df3"), "name" : "王铁锤", "age" : 30, "sex" : "男" }
{ "_id" : ObjectId("5d53b2f308a6149f969e8df6"), "name" : "王金锤", "age" : 19, "sex" : "男" }
{ "_id" : ObjectId("5d53b30a08a6149f969e8df7"), "name" : "王银锤", "age" : 23, "sex" : "女" }
> db.NO13.find({"age":{$lte:19}})
{ "_id" : ObjectId("5d53b2c308a6149f969e8df4"), "name" : "王木锤", "age" : 16, "sex" : "女" }
{ "_id" : ObjectId("5d53b2e208a6149f969e8df5"), "name" : "王铜锤", "age" : 18, "sex" : "男" }
{ "_id" : ObjectId("5d53b2f308a6149f969e8df6"), "name" : "王金锤", "age" : 19, "sex" : "男" }
{ "_id" : 1, "name" : "王小锤", "age" : 13, "sex" : "男" }
> db.NO13.find({"age":{$ne:19}})
{ "_id" : ObjectId("5d53b24708a6149f969e8df2"), "name" : "王大锤", "age" : 20, "sex" : "男" }
{ "_id" : ObjectId("5d53b2a408a6149f969e8df3"), "name" : "王铁锤", "age" : 30, "sex" : "男" }
{ "_id" : ObjectId("5d53b2c308a6149f969e8df4"), "name" : "王木锤", "age" : 16, "sex" : "女" }
{ "_id" : ObjectId("5d53b2e208a6149f969e8df5"), "name" : "王铜锤", "age" : 18, "sex" : "男" }
{ "_id" : ObjectId("5d53b30a08a6149f969e8df7"), "name" : "王银锤", "age" : 23, "sex" : "女" }
{ "_id" : 1, "name" : "王小锤", "age" : 13, "sex" : "男" }
{ "_id" : ObjectId("5d53b53b08a6149f969e8df8"), "name" : "王钢锤" }
{ "_id" : ObjectId("5d53b53b08a6149f969e8df9"), "name" : "王石锤" }
  1. 匹配查询多个内容
    Db.要查询的集合.find({$or:[{查询的内容1},{查询的内容2}]})
> db.NO13.find({$or:[{"name":"王金锤"},{"name":"王铁锤"}]})
{ "_id" : ObjectId("5d53b2a408a6149f969e8df3"), "name" : "王铁锤", "age" : 30, "sex" : "男" }
{ "_id" : ObjectId("5d53b2f308a6149f969e8df6"), "name" : "王金锤", "age" : 19, "sex" : "男" }
  1. 排序查询
    db.要查询的集合.find().sort({要排序的内容:-1倒序/1正序})
> db.NO13.find().sort({"age":-1})
{ "_id" : ObjectId("5d53b2a408a6149f969e8df3"), "name" : "王铁锤", "age" : 30, "sex" : "男" }
{ "_id" : ObjectId("5d53b30a08a6149f969e8df7"), "name" : "王银锤", "age" : 23, "sex" : "女" }
{ "_id" : ObjectId("5d53b24708a6149f969e8df2"), "name" : "王大锤", "age" : 20, "sex" : "男" }
{ "_id" : ObjectId("5d53b2f308a6149f969e8df6"), "name" : "王金锤", "age" : 19, "sex" : "男" }
{ "_id" : ObjectId("5d53b2e208a6149f969e8df5"), "name" : "王铜锤", "age" : 18, "sex" : "男" }
{ "_id" : ObjectId("5d53b2c308a6149f969e8df4"), "name" : "王木锤", "age" : 16, "sex" : "女" }
{ "_id" : 1, "name" : "王小锤", "age" : 13, "sex" : "男" }
{ "_id" : ObjectId("5d53b53b08a6149f969e8df8"), "name" : "王钢锤" }
{ "_id" : ObjectId("5d53b53b08a6149f969e8df9"), "name" : "王石锤" }

> db.NO13.find().sort({"age":1})
{ "_id" : ObjectId("5d53b53b08a6149f969e8df8"), "name" : "王钢锤" }
{ "_id" : ObjectId("5d53b53b08a6149f969e8df9"), "name" : "王石锤" }
{ "_id" : 1, "name" : "王小锤", "age" : 13, "sex" : "男" }
{ "_id" : ObjectId("5d53b2c308a6149f969e8df4"), "name" : "王木锤", "age" : 16, "sex" : "女" }
{ "_id" : ObjectId("5d53b2e208a6149f969e8df5"), "name" : "王铜锤", "age" : 18, "sex" : "男" }
{ "_id" : ObjectId("5d53b2f308a6149f969e8df6"), "name" : "王金锤", "age" : 19, "sex" : "男" }
{ "_id" : ObjectId("5d53b24708a6149f969e8df2"), "name" : "王大锤", "age" : 20, "sex" : "男" }
{ "_id" : ObjectId("5d53b30a08a6149f969e8df7"), "name" : "王银锤", "age" : 23, "sex" : "女" }
{ "_id" : ObjectId("5d53b2a408a6149f969e8df3"), "name" : "王铁锤", "age" : 30, "sex" : "男" }

limit读取指定数量的数据记录条数
skip使用skip()方法来跳过指定数量的数据

> db.NO13.find().skip(4)
{ "_id" : ObjectId("5d53b2f308a6149f969e8df6"), "name" : "王金锤", "age" : 19, "sex" : "男" }
{ "_id" : ObjectId("5d53b30a08a6149f969e8df7"), "name" : "王银锤", "age" : 23, "sex" : "女" }
{ "_id" : 1, "name" : "王小锤", "age" : 13, "sex" : "男" }
{ "_id" : ObjectId("5d53b53b08a6149f969e8df8"), "name" : "王钢锤" }
{ "_id" : ObjectId("5d53b53b08a6149f969e8df9"), "name" : "王石锤" }

> db.NO13.find().skip(0).limit(2)
{ "_id" : ObjectId("5d53b24708a6149f969e8df2"), "name" : "王大锤", "age" : 20, "sex" : "男" }
{ "_id" : ObjectId("5d53b2a408a6149f969e8df3"), "name" : "王铁锤", "age" : 30, "sex" : "男" }

返回结果集中的数量count()

> db.NO13.find().count()
9

修改:

>db.collection.update(
   {<query>},
   {$set:{<update>}},
   {
     upsert: <boolean>,
     multi: <boolean>
   }
)

query:查询出要修改的数据
update:要修改的数据的值
upsert:可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入
multi: 可选,MongoDB 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新
7. 单纯的修改

> db.NO13.update({"age":16},{"age":116})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.NO13.find()
{ "_id" : ObjectId("5d53b24708a6149f969e8df2"), "name" : "王大锤", "age" : 20, "sex" : "男" }
{ "_id" : ObjectId("5d53b2a408a6149f969e8df3"), "name" : "王铁锤", "age" : 30, "sex" : "男" }
{ "_id" : ObjectId("5d53b2c308a6149f969e8df4"), "age" : 116 }
{ "_id" : ObjectId("5d53b2e208a6149f969e8df5"), "name" : "王铜锤", "age" : 18, "sex" : "男" }
{ "_id" : ObjectId("5d53b2f308a6149f969e8df6"), "name" : "王金锤", "age" : 19, "sex" : "男" }
{ "_id" : ObjectId("5d53b30a08a6149f969e8df7"), "name" : "王银锤", "age" : 23, "sex" : "女" }
{ "_id" : 1, "name" : "王小锤", "age" : 13, "sex" : "男" }
{ "_id" : ObjectId("5d53b53b08a6149f969e8df8"), "name" : "王钢锤" }
{ "_id" : ObjectId("5d53b53b08a6149f969e8df9"), "name" : "王石锤" }


> db.NO13.update({"age":116},{$set:{"name":"王家小锤爷"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.NO13.find()
{ "_id" : ObjectId("5d53b24708a6149f969e8df2"), "name" : "王大锤", "age" : 20, "sex" : "男" }
{ "_id" : ObjectId("5d53b2a408a6149f969e8df3"), "name" : "王铁锤", "age" : 30, "sex" : "男" }
{ "_id" : ObjectId("5d53b2c308a6149f969e8df4"), "age" : 116, "name" : "王家小锤爷" }
{ "_id" : ObjectId("5d53b2e208a6149f969e8df5"), "name" : "王铜锤", "age" : 18, "sex" : "男" }
{ "_id" : ObjectId("5d53b2f308a6149f969e8df6"), "name" : "王金锤", "age" : 19, "sex" : "男" }
{ "_id" : ObjectId("5d53b30a08a6149f969e8df7"), "name" : "王银锤", "age" : 23, "sex" : "女" }
{ "_id" : 1, "name" : "王小锤", "age" : 13, "sex" : "男" }
{ "_id" : ObjectId("5d53b53b08a6149f969e8df8"), "name" : "王钢锤" }
{ "_id" : ObjectId("5d53b53b08a6149f969e8df9"), "name" : "王石锤" }

修改更多内容

> db.NO13.update({"age":19},{$set:{"sec":"半男不女"}},{multi:true})
WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })
> db.NO13.find()
{ "_id" : ObjectId("5d53b24708a6149f969e8df2"), "name" : "王大锤", "age" : 20, "sex" : "男" }
{ "_id" : ObjectId("5d53b2a408a6149f969e8df3"), "name" : "王铁锤", "age" : 30, "sex" : "男" }
{ "_id" : ObjectId("5d53b2c308a6149f969e8df4"), "age" : 116, "name" : "王家小锤爷" }
{ "_id" : ObjectId("5d53b2e208a6149f969e8df5"), "age" : 19, "sec" : "半男不女" }
{ "_id" : ObjectId("5d53b2f308a6149f969e8df6"), "name" : "王金锤", "age" : 19, "sex" : "男", "sec" : "半男不女" }
{ "_id" : ObjectId("5d53b30a08a6149f969e8df7"), "name" : "王银锤", "age" : 23, "sex" : "女" }
{ "_id" : 1, "name" : "王小锤", "age" : 13, "sex" : "男" }
{ "_id" : ObjectId("5d53b53b08a6149f969e8df8"), "name" : "王钢锤" }
{ "_id" : ObjectId("5d53b53b08a6149f969e8df9"), "name" : "王石锤" }
  1. 删除
    Db.要删除的集合.remove({k:v})默认删除匹配到的所有内容
> db.NO13.remove({"age":19})
WriteResult({ "nRemoved" : 2 })
> db.NO13.find()
{ "_id" : ObjectId("5d53b24708a6149f969e8df2"), "name" : "王大锤", "age" : 20, "sex" : "男" }
{ "_id" : ObjectId("5d53b2a408a6149f969e8df3"), "name" : "王铁锤", "age" : 30, "sex" : "男" }
{ "_id" : ObjectId("5d53b2c308a6149f969e8df4"), "age" : 116, "name" : "王家小锤爷" }
{ "_id" : ObjectId("5d53b30a08a6149f969e8df7"), "name" : "王银锤", "age" : 23, "sex" : "女" }
{ "_id" : 1, "name" : "王小锤", "age" : 13, "sex" : "男" }
{ "_id" : ObjectId("5d53b53b08a6149f969e8df8"), "name" : "王钢锤" }
{ "_id" : ObjectId("5d53b53b08a6149f969e8df9"), "name" : "王石锤" }

只想删除一条 justOne

Mongoose是一个node的第三方库,他的作用就是帮助node更好更高效的连接mongodb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值