MongoDB入门三:MongoDB shell
MongoDB shell
MongDB shell是一个功能完备的Javascript解释器,可以运行Javascript程序。也可以用于连接MongoDB服务器,执行脚本,对数据库进行操作。类似于SQL Server的管理工具SSMS。
可以通过以下2条命令打开shell控制台:
1 2 | > cd C:\Program Files\MongoDB 2.6 Standard\bin > mongo |
如图所示:
C:\Program Files\MongoDB 2.6 Standard 是MongoDB的安装目录。
在打开shell控制台之前请确保MongoDB服务已启动,如何启动MongoDB可以参考MongoDB入门一:安装与配置。
MongoDB shell基本操作
1.添加
1 | > db.blog.insert({ "title" : "aaa" , "content" : "123" , "date" : new Date()}) |
添加一条数据使用insert方法,MongoDB会隐式地创建集合blog。如果添加的文档比较复杂,也可以先声明再添加,例如:
1 2 3 4 5 6 7 | > post = { "title" : "aaa" , "content" : "123" , "author" : "Ming Li" , "summary" : "This article focuses on Asp.net MVC." , "date" : new Date() } > db.blog.insert(post) |
2.查询
不带参数的find方法会返回集合里面所有的文档,shell只显示20条。若只是想查看一条数据可以使用findOne方法,不带参数的findOne会返回当前集合中的第一条数据。
findOne方法有一个带参数的重载,参数类型是文档,类似于find的带参数的用法。如果查询不到数据,findOne会返回null,如果查询到了多条数据,findOne会返回第一条。
1 2 | > db.blog.find() > db.blog.findOne() |
如果想查询集合blog中title为"aaa"的文档,可以给find或findOne添加参数:
1 2 | > db.blog.find({ "title" : "aaa" }) //可能会返回多条 > db.blog.findOne({ "title" : "aaa" }) //只返回1条,如果查询不到数据,则返回null,这多么类似于.net中的FirstOrDefault方法 |
MongoDB还可以进行更为复杂的查询,这里只做简单介绍。
3.修改
修改使用update方法,update是一个至少有2个参数的方法。
假如集合book下有如下文档:
1 | { "_id" :11, "item" : "长安乱" , "publisher" : "春风文艺出版社" , "author" : "韩寒" , "price" :20} |
要修改书的价格为19可以使用下面的命令:
1 | > db.book.update({ "_id" :11},{ "price" :19}) |
如果想给它增加属性呢?假如我要使价格提高10,并且增加一个stock属性,其值为5,可以使用下面的命令:
1 2 3 4 5 6 7 | > db.book.update( { "_id" :11}, { $.set:{stock:5}, $.inc:{price:10} } ) |
修改之后的文档:
1 | { "_id" :11, "item" : "长安乱" , "publisher" : "春风文艺出版社" , "author" : "韩寒" , "price" :29, "stock" :5} |
MongoDB还可以进行更为复杂的修改操作,这里只做简单介绍。
4.删除
remove用来从数据库中永久性地删除文档。在不使用任何参数的情况下,它会删除集合内的所有文档。它也可以接受一个文档类型的参数以限定条件。
例如下面的命令会删除blog中title为aaa的文档:
1 | > db.blog.remove({ "title" : "aaa" }) |
shell的其他常用命令
1.查看db下的所有命令或方法
1 | > db.help() |
2.切换到数据库test,如果test不存在会自动创建
1 | > use test |
3.删除当前连接的数据库
1 | > db.dropDatabase() //请谨慎操作 |
4.查询本地所有数据库名称
1 | > show dbs |
5.查询当前数据库下的所有集合
1 | show collections |
6.查询当前集合下的文档个数
1 | db.collection.count() //示例:db.blog.count() |
7.删除某一个collection
1 | db.collectionName.drop() //请谨慎操作 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构