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]
查看數據庫:show空格dbs;
> show dbs
admin 0.000GB
local 0.000GB
mgd 0.000GB
切換/新增(如果有就是切換 如果沒有就是新增)數據庫 use 空格 要切換或者新增的庫
> use mgd
switched to db mgd
注意新增有問題
> show dbs
admin 0.000GB
local 0.000GB
mgd 0.000GB
當我們輸入一個沒有的庫名的時候本應該是新增 但是當我們輸入之后發現并沒有新增 原因是(其實新增了只是里面沒有集合所以不顯示)
創建集合: db.要創建的集合名字.insert({k:v})
> db.chuichui.insert({"name":"大錘",age:20,sex:"男"})
WriteResult({ "nInserted" : 1 })
查看集合 show空格collections
> show collections
chuichui
刪除庫 必須先切換到你要刪的庫 use空格庫名 db.dropDatabase() 刪除集合 必須先要切換到指定要刪除集合的庫中 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. 查詢
按照條件進行查詢
db.要查詢的集合名.find({k:v})
> db.NO13.find({age:18})
{ "_id" : ObjectId("5d53b2e208a6149f969e8df5"), "name" : "王銅錘", "age" : 18, "sex" : "男" }
格式化查詢數據 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" : "男" }
查詢匹配更多內容 Db.要查詢的數據.find({查詢的內容1,查詢的內容2···})
> db.NO13.find({"name":"王銀錘",sex:"女"})
{ "_id" : ObjectId("5d53b30a08a6149f969e8df7"), "name" : "王銀錘", "age" : 23, "sex" : "女" }
條件查詢 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" : "王石錘" }
匹配查詢多個內容 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" : "男" }
排序查詢 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" : "王石錘" }
刪除 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
總結
以上是生活随笔 為你收集整理的Mongodb 2 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。