文档
多个键及关联的值有序的放置在一起就是文档,如"greeting":"Hello World!"
特点
文档中键值对是有序的
除了字符串还可以是其他类型:
"age":18
-
文档中的键是字符串,除极少数例外情况,可以使用任意UTF-8字符
- 键不能含有\0(空字符),这个字符用来表示键的结尾
- .和$有特殊含义,保留
- _也是保留的,但是没有强制规定
mongo不但区分类型,也区分大小写
不能有重复的键
集合
集合就是一组文档
命名
- 集合名不能是空字符串
- 不能含有\0字符
- 不能以system.开头
- 不能含有$
子集合
用.分隔的集合,比如blog.posts和blog.authors。
数据库
多个集合组成数据库
启动mongoDB
$ ./mongod.exe
启动失败,会有提示:
若如下所示,则表示启动成功:
新开一个命令行窗口,输入./mongo.exe
,这里可以运行任何JavaScript程序:
shell基本操作
增
> post={
... "title":"My blog post",
... "content":"Here's my blog post.",
... "date":new Date()
... }
> db.blog.insert(post)
查
> db.blog.find()
{ "_id" : ObjectId("599300b0ab5eab2f157ace21"), "title" : "My blog post", "content" : "Here's my blog post.", "date" : ISODate("2017-08-15T14:09:27.288Z") }
> db.blog.findOne()
{ "_id" : ObjectId("599300b0ab5eab2f157ace21"), "title" : "My blog post", "content" : "Here's my blog post.", "date" : ISODate("2017-08-15T14:09:27.288Z") }
find最多显示20个匹配的文档,但也可以获取更多,以后再说。
改
> post.comments=[]
[ ]
> db.blog.update({"title":"My blog post"},post)
删
> db.blog.remove({"title":"My blog post"})
Tips
- 可以通过调用函数名来获取函数源码:
> db.blog.remove
- 如果集合名称与数据库函数名称相同,那么通过db.集合名可能会报错,可以通过
db.getCollection("集合名")
来获取。