前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >玩转mongodb(二):mongodb基础知识

玩转mongodb(二):mongodb基础知识

作者头像
壮壮熊
修改2023-01-17 14:57:23
7000
修改2023-01-17 14:57:23
举报
文章被收录于专栏:程序猿牧场程序猿牧场

常用基本数据类型:

null

代码语言:txt
复制
null用于表示空值或者不存在的字段:
代码语言:txt
复制
{"data":null}

布尔型

代码语言:txt
复制
布尔类型只有两个值,true和false:
代码语言:txt
复制
{"data":true}、{"data":false}

字符串

代码语言:txt
复制
字符串类型的数据是由UTF-8字符组成:
代码语言:txt
复制
{"data":"pingan"}

正则表达式

代码语言:txt
复制
查询时,使用正则表达式作为限定条件,语法和javascript的正则表达式一样:
代码语言:txt
复制
{"data":/pingan/i}

对象id

代码语言:txt
复制
对象id是一个12字节(24字符)的ID,是文档的唯一标识。
代码语言:txt
复制
{"data":ObjectId()}

数值

代码语言:txt
复制
shell默认使用64位的浮点型数值,即Double类型。对于整型值,可以使用NumberInt类(4字节带符号整数)或NumberLong类(8字节带符号整数)。
代码语言:txt
复制
{"data":3.33},表示Double类型
代码语言:txt
复制
{"data":NumberInt("3")},表示Int类型
代码语言:txt
复制
{"data":NumberLong("3")},表示Long类型

数组

代码语言:txt
复制
数据列表或者数据集都可以表示为数组。数组的元素可以是数值、字符串等等其他基本数据类型,元素之间用英文逗号分隔开。
代码语言:txt
复制
{"data":[1,2,3]}、{"data":["a","b","c"]}

日期

代码语言:txt
复制
日期被存储为自新纪元以来经过的毫秒数,不存储时区:
代码语言:txt
复制
{"data":new Date()}

内嵌文档

代码语言:txt
复制
文档可以嵌套其他文档,被嵌套的文档作为父文档的值:
代码语言:txt
复制
{"data":{"company":"pingan"}}

二进制数据

代码语言:txt
复制
二进制数据是一个任意字节的字符串,要将非UTF-8字符保存到数据库中,二进制数据是唯一的方式。比如保存图片的数据。但是不能直接在shell中使用。
代码语言:javascript
复制
//把图片存到mongodb中
public void SaveImgMG(byte[] byteImg)
{
    Document doc = new Document();
    doc["ID"] = 1;
    doc["Img"] = byteImg;
    mongoCollection.Save(doc);
}
//获取mongodb存储的图片字节数据
public byte[] GetImgMG()
{
  Document doc= mongoCollection.FindOne(new Document { { "ID", 1 } });
  return doc["Img"] as Binary;
}

文档:

代码语言:txt
复制
    文档就是键值对的一个有序集,是MongoDB中数据的基本单元,非常类似于关系型数据库管理系统中的行,但更具表现力。
代码语言:javascript
复制
var mydoc = {
    _id: ObjectId("5099803df3f4948bd2f98391"),
    name: { first: "Alan", last: "Turing" },
    birth: new Date('Jun 23, 1912'),
    death: new Date('Jun 07, 1954'),
    contribs: [ "Turing machine", "Turing test", "Turingery" ],
    views : NumberLong(1250000)
}

集合:

代码语言:txt
复制
    集合就是一组文档,如果将MongoDB中的一个文档比喻为关系型数据库中的一行,那么一个集合就相当于一张表的概念。

数据库:

代码语言:txt
复制
    在MongoDB中,多个文档组成集合,而多个集合可以组成数据库,一个MongoDB实例,可以承载多个数据库,每个数据库拥有0个或者多个集合。MongoDB3.0这个版本中,有三个数据库名是保留的。分别是:admin、local、config。
代码语言:txt
复制
    admin:从身份验证的角度来讲,这是“root”数据库。如果将一个新建的一个用户添加到admin数据库,这个用户就自动获得所有数据库的权限。
代码语言:txt
复制
    local:这个数据库永远都不可以复制,且一台服务器上的所有本地集合都可以存储在这数据库中。
代码语言:txt
复制
    config:MongoDB用于分片设置时,分片信息会存储在config数据库中。

shell中的基本操作:

代码语言:txt
复制
shell会用到4个基本的操作:创建、读取、更新和删除(即CRUD操作)。
代码语言:txt
复制
创建:
代码语言:javascript
复制
1 db.person.insert({"name":"ryan","age":26});
2 db.person.find({"name":"ryan"});
代码语言:txt
复制
    更新:使用update修改人员信息。update接受(至少)两个参数,第一个是限定条件(用于匹配待更新的文档),第二个是新的文档。
代码语言:javascript
复制
1 db.person.update({"name":"ryan"},{"name":"ryan","age":27});
2 db.person.find({"name":"ryan"});
代码语言:txt
复制
    删除:使用remove方法可将文档从数据库中永久删除。如果没有使用任何参数,它会将集合内的所有文档全部删除(甚用!!)。它可以接受一个作为限定条件的文档作为参数。
代码语言:javascript
复制
1 db.person.remove({"name":"ryan"});
2 db.person.find({"name":"ryan"});
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-01-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序猿牧场 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档