mongo与关系型数据库的概念对比,区分大小写,_id为主键。
1.数据库操作
>show dbs #查看所有数据库
>use dbname #创建和切换数据库(如果dbname存在则切换到该数据库,不存在则创建并切换到该数据库;新创建的数据库不会显示,需要插入记录才会显示)
>db.dropDatabase() #删除数据库(需要先use进入到需要删除的数据库)
2.集合操作
>show collections或者show tables #查看集合(需要先use进入数据库)
>db.createCollection(集合名字,参数) #创建集合
>db.集合名.drop() #删除集合
3.文档操作
>db.集合名.insert(文档) #插入文档,如果集合在该数据库中不存在会先创建集合
>db.col.insert({ title: 'MongoDB教程', description: 'MongoDB是一个Nosql数据库', by: '菜鸟教程', url: 'https://www.runoob.com/mongodb/mongodb-tutorial.html', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 }) >db.col.insert({ title: 'MySQL教程', description: 'MySQL是一个sql数据库', by: '菜鸟教程', url: 'https://www.runoob.com/mysql/mysql-tutorial.html', tags: ['MySQL', 'database', 'SQL'], likes: 200 })
>db.集合名.find(查询条件).pretty() #查询文档,find是以非结构化的形式显示所有文档,加上pretty()以结构化的形式显示
对应的findOne方法返回第一个满足条件的文档
> db.col.find().pretty() { "_id" : ObjectId("5d2e94f240515ad8a4693240"), "title" : "MongoDB教程", "description" : "MongoDB是一个Nosql数据库", "by" : "菜鸟教程", "url" : "https://www.runoob.com/mongodb/mongodb-tutorial.html", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 } { "_id" : ObjectId("5d2e960d40515ad8a4693241"), "title" : "MySQL教程", "description" : "MySQL是一个sql数据库", "by" : "菜鸟教程", "url" : "https://www.runoob.com/mysql/mysql-tutorial.html", "tags" : [ "MySQL", "database", "SQL" ], "likes" : 200 }
>db.集合名.update(查询条件,更新操作,{upsert: <boolean>,multi: <boolean>,writeConcern: <document>}) #更新文档
- upsert : 可选,如果不存在update的记录是否插入为新记录,true为插入,默认是false不插入。
- multi : 可选,默认是false,只更新找到的第一条记录,如果设置为true则将按条件查出来的所有记录全部更新。
- writeConcern :可选,抛出异常的级别。
> db.col.update({by:'菜鸟教程'},{$set:{likes:500}},{upsert:true,multi:true}) WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })
>db.集合名.save(文档) #更新文档
根据_id进行判断,如果要save的记录在原集合中存在,则按照内容对已存在的文档进行更新,如果不存在则进行插入。
> db.col.save({ "_id" : ObjectId("5d2e960d40515ad8a4693241"), title: 'Python教程', description: 'Python是一种解释型、面向对象、动态数据类型的高级程序设计语言', by: '菜鸟教程', url: 'https://www.runoob.com/python3/python3-tutorial.html', tags: ['Python', '开发', '编程'], likes: 1000 }) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
db.col.save({ "_id" : ObjectId("5d2e960d40515ad8a4693250"), title: 'HTML', description: '是一种用于创建网页的标准标记语言', by: '菜鸟教程', url: 'https://www.runoob.com/html/html-tutorial.html', tags: ['HTML', '前端', '编程'], likes: 300 }) WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0 })
>db.集合名.remove(查询条件,justOne,writeConcern ) #删除文档
- query :(可选)删除的文档的条件。
- justOne : (可选)如果设为 true 或 1,只删除一个文档,不设置该参数使用默认值 false,删除所有匹配条件的文档。
- writeConcern :(可选)抛出异常的级别。
>db.col.remove({by:'菜鸟教程'},1) WithResult({"nRemoved":1}) >db.col.remove({by:'菜鸟教程'}) WithResult({"nRemoved":2})
db.col.remove({})删除所有文档