- 连接数据库
打开cmd命令行工具,输入mongo
清屏:
cls
查看所有数据库列表:
show dbs
- 新建数据库,查找、删除数据库
1)数据库,集合,数据之间的从属关系
2) 数据库操作的相关命令,以下使用jsthin作为数据库名
使用数据库(数据库存在则使用,不存在则创建):use jsthin
输入db,可以查看当前数据库
此时数据库并未真正创建,需要插入一条数据才能生效,如下往jsthin数据库的user集合插入一条数据:db.user.insert({"name": "dell"})
展示当前数据库下的集合列表:show collections
删除当前数据库:db.dropDatabase()
删除当前数据库的集合,以下输出jsthin数据库下的user集合:db.user.drop()
- 插入数据
插入单条数据db.user.insert({"name": "dell", "age":18})
插入多条数据,可以用for循环生成多条数据然后插入:var data = [{"name": "dell", "age":18}, {"name": "lee", "age":18}];
db.user.insert(data)
- 查找文档
查询所有文档:db.user.find()
查询去掉后的当前聚集集合中的某列的重复数据:db.user.find("name")
会过滤掉name字段中相同的数据
查询name = dell的数据db.user.find({name: "dell"})
查询age>20的数据(greater than)db.user.find({age: {$gt: 20}})
查询age>=20的数据(greater than or equal)db.user.find({age: {$gte: 20}})
查询age<20的数据(less than)db.user.find({age: {$lt: 20}})
查询age<=20的数据(less than or equal)db.user.find({age: {$lte: 20}})
查询age<20 并且age>16的数据db.user.find({age: {$gt: 16, $lt: 20}})
查询name中包含“mongo”的数据,模糊查询db.user.find({name: /mongo/})
查询name中以“mongo”开头的数据,模糊查询db.user.find({name: /^mongo/})
查询name中以“mongo”结尾的数据,模糊查询db.user.find({name: /mongo$/})
查询指定列name, age的数据,既查找的数据只包含name、age属性{name:xxx, age: xx }
1表示真的意思,也可以使用true、false,如果是false则表示排除该列,不会包含在查询结果中db.user.find({},{name: 1, age: 1})
查询指定列name, age并且age > 18的数据db.user.find({age: {$gt: 18}},{name: 1, age: 1})
查询结果按年龄排列, 1表示升序,-1表示降序db.user.find().sort({age: 1})
db.user.find().sort({age: -1})
查询age = 18, name = dell的数据db.user.find({name: "dell", age: 18})
查询前五条数据db.user.find().limit(5)
查询后十条数据db.user.find().skip(10)
查询5-10之间数据前十条中的后五条db.user.find().limit(10).skip(5)
or 与查询,查询年龄在20岁和18岁的数据db.user.find($or: [{age: 20}, {age: 18}]})
查询第一条数据db.user.findOne()
或者db.user.find().limit(1)
查询文档统计db.user.find().count()
查询某个结果集的文档统计db.user.find({name: "dell"}).count()
如果要返回限制之后的记录数量,要使用 count(true)或者 count(非 0)db.user.find().limit(10).skip(5).count(true)
- 修改文档
update() 方法
db.collection.update(
{
upsert:
multi:
writeConcern:
}
)
参数说明:
- query : update的查询条件,类似sql update查询内where后面的。
- update : update的对象和一些更新的操作符(如$,$inc…)等,也可以理解为sql update查询内set后面的
- upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
- multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
- writeConcern :可选,抛出异常的级别。
实例
查询名字叫dell的,把age改为25db.user.update({name: "dell"}, {$set: {age: 25}})
更改所有匹配的项目(multi)db.user.update({name: "dell"}, {$set: {age: 25}}, {multi: true})
注意!$set的用法,如果未加上$set,执行的操作是对文档的覆盖,是一个完整的替换,如db.user.update({name: "dell"}, {{age: 25}})
- 删除文档
删除name为dell的文档db.collectionsNames.remove( { "name": "dell" } )
删除匹配的第一条数据db.collectionsNames.remove( { "name": "dell" }, {justOne: true} )
结语:以上~~~,觉得有用就点个赞吧