安装&登录
0、Windows下使用从MongoDB官网下载MSI安装文件,感觉比zip的安装包使用便捷。Ubuntu Linux下使用sudo apt install mongodb-server
安装、其配置文件路径为/etc/mongodb.conf
、可以通过在其中配置数据库路径。
Mac下使用brew install mongodb
,其配置信息可参考如下:
1、mongod --bind_all
默认只能本机访问MongoDB、使用此选项可以让别的机器通过网络访问
2、如果不能访问,检查端口是否开放,默认为27017。AWS的EC2需要在入站规则中加入该端口才会生效。
3、使用mongo
进入数据库后、创建用户与密码。
Mongo Shell
insert
1 | db.collection.insert( |
save
Updates an existing document or inserts a new document, depending on its document parameter.
query
一般查询:
1 | db.inventory.find( {} ) |
使用查询操作符查询:
更多查询操作符:https://docs.mongodb.com/manual/reference/operator/query/
1 | // 格式:{ <field1>: { <operator1>: <value1> }, ... } |
使用AND
1 | // status==‘A’ && qty < 30 |
使用OR
1 | // status==‘A’ || qty < 30 |
正则表达式
详细可参考:https://docs.mongodb.com/manual/reference/operator/query/regex/
1 | /* 格式: |
两种格式的使用场景存在差异,具体可参考上述链接:
1 | { name: { $in: [ /^acme/i, /^ack/ ] } } // 这里只能使用第二种格式 |
如果文档中的某个字段的值是文档
1 | // 插入--注意size的结构 |
执行效果如下:
如果只以size中的某一个字段为查询域
1 | db.inventory.find( { "size.uom": "in" } ) |
其中的字段还可以为一个数组,数组中的数据可以是一个简单的类型,如整数、字符串等,也可以还是一个文档。对于这些情况,其查询方式存在或多或少的差异,可以在需要的时候参考官方文档。
如何返回自己想要的字段
前面查询得到的结果都是全部的字段,如果不需要返回所有的字段,可以通过设置projection来达到目的,projection的解释:
A document given to a query that specifies which fields MongoDB returns in the result set.
其中还包括字段为数组以及数组中的字段为文档的多种情况。
1 | // 初始数据结构 |
update
1 | db.books.update( |