mongodb 学习笔记-概念

mongodb 学习笔记-概念

1,mongodb中的文档(document)
.文档是mongodb的核心概念,多个键及其关联的值有序的放置在一起就是文档。例如:
文档1:
{"name1": "test", "age": 80, "address": "bj"}
文档2:
{"name1": "test", "address": "bj",  "age": 80}
.文档的键/值对是有序的,文档1和文档2的是两个不同的文档
.从例子中可以看出,文档中键的值的类型可以不同,这个想python中的字典
.文档中的键的要求
(1)文档中的键必须是字符串,除了少数例外情况,键值可以使用任意的UTF-8字符
(2)键中不能含有\0和.还有$和_这些字符
(3)键的字符串,区分大小写
(4)键不能重复

2,集合
.集合是一组文档的组合,可以把文档看成关系数据库中的行,把集合看成是表。
.集合是无模式的,也就是说集合中可以有各式各样的文档:
{“name1”: "test"}
{"age": 80}
.在一个集合中放置各种各样的文档,会造成很多查询浪费,而且分析起来也不方便。
.最好是把同种类型的文档放在一个集合中,方便创建索引,和其他的管理操作;
.集合的命名
.集合的命名中不能是空字符串,不能含有\0,不能以system.开头,不能含有$字符;
.子集合可和可以通过,集合.子集合 这样的方式来引用;
.一个集合可以包含多个子集合;

3, 数据库
.多个文档组成集合,多个集合组成数据库;
.数据库也可以通过名字来标记:但必须满足以下条件,数据库名最终会变成系统中的文件
(1)不能空字符串,不得含有‘’.$\/和\0等字符
(2)应该全部小写
(3)最多64字节

.有些数据库是保留的,包括:
admin, local, config

4,启动和使用mongoDB
.安装好mongodb后,默认的数据目录是/data/db,该目录可以通过--dbpath参数来指定,默认端口是27017
../mongod 来启动数据库

. mongoDB shell
. 启动mongoDB shell
  ./mongo
. mongoDB是用javascript写的,所以可以使用javascript的函数

.shell中的基本操作
>use foobar
>db

(1)创建
定义一个对象:
>post={"title":"hello world", "data": new Date()}
插入对象:
>db.blog.insert(post)
查看一下:
>db.blog.find()

(2)读取
find()会返回集合里所有的文档,findOne()方法会返回想查看的一个文档

(3)删除
>db.blog.remove({"title":"hello world"})

(4)更新
> post = {"name" : "testmongo", "age": 20}
{ "name" : "testmongo", "age" : 20 }
> db.blog.insert(post)
> db.blog.find()
{ "_id" : ObjectId("4f6e7a0e1dffe42de82704f8"), "name" : "testmongo", "age" : 20 }
> post.age=80
80
> db.blog.update({"name":"testmongo"}, post)
> db.blog.find()                           
{ "_id" : ObjectId("4f6e7a0e1dffe42de82704f8"), "name" : "testmongo", "age" : 80 }

 

5 数据类型

5.1 基本数据类型

mongodb的支持的数据类型和mongodb shell支持的数据类型不同,mongodb shell支持的数据类型要少一些。

.null
    表示空值或是不存在的字段
{"data": null}
.布尔
    布尔值有两个: true 和 false
.32位整形
    此类型在shell中不可用。
.64位整形
    shell不支持.
.64位浮点数
    shell中支持这种类型,而不支持整数类型,所以:
    {"x": 3.14}是浮点型
    {"x": 3}  保存后也会转换成浮点型
.字符串
    {"str": "hello"}
.符号
    shell中不支持符号类型,它会把数据库中的符号转换成字符串
.对象id
    对象id是文档的12直接的唯一ID
.正则表达式
    文档中可以包含正则表达式
    {"x": /foobar/i}
.代码
    文档中可以包含javascript代码
    {"x": function()}
.二进制数
    二进制数可以由任意的字节组成,但shell中不支持。
.最大值和最小值
    shell中不支持
.未定义
.数组
    值的集合或者列表可以表示成数组
    {"x": ["a", "b", "c"]}
.内嵌文档
    文档中可以包含文档
    {"x": {"boo": "bar"}}

5.2 关于数据类型的说明
. 关于数字

 

待续......

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20498361/viewspace-719454/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/20498361/viewspace-719454/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的公寓报修管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本公寓报修管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公寓报修管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。公寓报修管理系统有管理员,住户,维修人员。管理员可以管理住户信息和维修人员信息,可以审核维修人员的请假信息,住户可以申请维修,可以对维修结果评价,维修人员负责住户提交的维修信息,也可以请假。公寓报修管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:公寓报修管理系统;Spring Boot框架;MySQL;自动化;VUE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值