库的操作
1. 查看数据库列表
show dbs:
2. 查看当前数据库
db
3. 新建一个表
db.createCollection('要新建的表名')
// 返回结果
// {"ok" : 1}
4. 查看当前数据库下的表
show collections
5. 删除当前数据库指定表
fb.表名.drop();
// 返回结果
// true
6. 删除当前数据库
db.dropDatabase()
// 返回结果
// {"dropped": "test", "ok": 1}
默认为存在
admin
和local
两个数据库;admin数据库
是存放管理员信息的数据库
,认证会用到;local
是存放replication相关的数据
表中插入数据
方法一
// 表插入数据
db.table.insert({"name": "haha", "age": 18, "sex": "man"})
// 返回结果
// WriteResult("nInserted" : 1)
// 查询选定表中所有的数据
db.table.find()
// 返回结果
// {"_id": ObjectcId("5f9d16c150f1deea45bd4b39"), "name": "haha", "age": 18, "sex": "man"}
没有去创建"table"表,其实通过插入操作也会自动创建_id 是mongoDb自己生成的,每行数据都会存在,默认是ObjectId,可以在插入数据时插入这个键的值(支持mongoDb支持的所有数据类型)
方法二
db.table.save({"name": "haha", "age": 18, "sex": "man"})
// 返回结果
// WriteResult("nInserted" : 1)
insert和save的区别
db.table.insert({"_id": 1, "name": "haha", "age": 18, "sex": "man"})
// 返回结果
// WriteResult("nInserted" : 1)
db.table.insert({"_id": 1, "name": "haha", "age": 18, "sex": "man"})
// 返回结果
// WriteResult({
// "nInserted" : 1})
// "writeError": {
// "code": 11000
// "errmsg": "E11000 duplicate key error collection: test.table index: _id_ dup key: { : 1.0 }"
// }
// )}
db.table.save({"_id": 1, "name1111": "haha", "age": 18, "sex": 'man'})
// 返回结果
// WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
当默认的_id
值已经存在时,调用insert方法插入会报错的;而save方法不错,会更新相同的_id所在行数据的信息
查询
查询表中所有的数据
db.表名.find()
按条件查询
db.表名.find(条件)
查询第一条(支持条件)
db.表名.findOne(条件)
限制数量
db.表名.find().limit(数量)
跳过指定数量
db.表名.find().skip(数量)
测试用例
for(var i = 0; i 10; i++) {db.table2.save({"_id": i, "name": "haha" + i, age: 18 + i});}
// 返回结果
// WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0, "_id" : 9 })
db.table2.find()
// 返回结果
// { "_id" : 0, "name" : "haha0", "age" : 18 }
// { "_id" : 1, "name" : "haha1", "age" : 19 }
// { "_id" : 2, "name" : "haha2", "age" : 20 }
// { "_id" : 3, "name" : "haha3", "age" : 21 }
// { "_id" : 4, "name" : "haha4", "age" : 22 }
// { "_id" : 5, "name" : "haha5", "age" : 23 }
// { "_id" : 6, "name" : "haha6", "age" : 24 }
// { "_id" : 7, "name" : "haha7", "age" : 25 }
// { "_id" : 8, "name" : "haha8", "age" : 26 }
// { "_id" : 9, "name" : "haha9", "age" : 27 }
// { "_id" : ObjectId("5f9d1fe250f1deea45bd4b3c"), "name" : "haha2", "age" : 100 }
db.table2.find({"name": "haha4"})
// 返回结果
// { "_id" : 4, "name" : "haha4", "age" : 22 }
// { "_id" : ObjectId("5f9d1fe250f1deea45bd4b3c"), "name" : "haha2", "age" : 100 }
db.table2.findOne({"name": "haha2"})
// { "_id" : 2, "name" : "haha2", "age" : 20 }
db.table2.find().limit(3)
// { "_id" : 0, "name" : "haha0", "age" : 18 }
// { "_id" : 1, "name" : "haha1", "age" : 19 }
// { "_id" : 2, "name" : "haha2", "age" : 20 }
db.table2.find().skip(7)
// { "_id" : 7, "name" : "haha7", "age" : 25 }
// { "_id" : 8, "name" : "haha8", "age" : 26 }
// { "_id" : 9, "name" : "haha9", "age" : 27 }
// { "_id" : ObjectId("5f9d1fe250f1deea45bd4b3c"), "name" : "haha2", "age" : 100 }
修改
方法一
db.表名.update({"条件字段名": "字段值"}, {$set: {"要修改的字段名": "修改后的字段值"}})
测试用例
db.table2.update({"name": "haha1"}, {$set: {"age": 100}})
// 返回结果
// WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
方法二
用save方法在_id
字段已经存在的情况下
删除
db.表名.remove(条件)
测试用例
db.table2.remove({"name": "haha3"})
// 返回结果
// WriteResult({ "nRemoved" : 1 })
❤️爱心三连击
总结不易欢迎在看转发,让更多小伙伴看到。
笔者也是初学前端不久,欢迎一起探讨和交流,后面笔者也会分享一些自己的笔记,共勉。
在看点这里