创建集合

use person //创建数据库或进入数据库
db.createCollection(table_name)

主键

插入数据时会自动生成主键,保证每条数据唯一性

  1. 生成对象主键
> ObjectId()
ObjectId("6163fb2ffaca91ed57d6c202")

2.查询ObjectId的创建时间

> ObjectId("6163fb2ffaca91ed57d6c202").getTimestamp()
ISODate("2021-10-11T08:51:59Z")

3.ObjectId类型

ObjectId类型是一个12个字节字符串

6163fb2f - faca9 1 - ed57 - d6c202

  • 4字节是存储这条数据的时间戳
  • 3字节是存储这条数据电脑的标识符
  • 2字节是存储这条数据的MongoDB进程id
  • 3字节是计数器

    4.主键值为什么不是自增长

    因为MongoDB是支持横向扩展的数据库,分布式数据库

    a)横向扩展是指增加数据库服务器的台数

    b)纵向扩展是指增加数据库服务器的配置

注:除了数组类型,其它类型数据都可作为主键

db.person.insert({_id:1})

db.person.insert({_id:”2”})

5.5)复合主键

可以使用文档作为文档主键

db.test.insert(

{

_id:{accountNo:”001”,type:”savings”},

name:”irene”,

balance:80

}

)

注:主键是唯一的,相同的文档主键在次插入会报错,但文档中的字段顺序不同则插入成功

monogo-shell的更多相关文章

  1. Shell替换

    如果表达式中包含特殊字符,Shell 将会进行替换.例如,在双引号中使用变量就是一种替换,转义字符也是一种替换. #!/bin/bash a= echo -e "Value of a is ...

  2. Shell特殊变量

    $ 表示当前Shell进程的ID,即pid $echo $$ 运行结果 特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数.n 是一个数字,表示第几个参数.例如,第一个参数 ...

  3. shell变量

    定义变量 定义变量时,变量名不加美元符号($),如: variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样.同时,变量名 ...

  4. 第一个shell脚本

    打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好. #!/bin/bash echo "Hello World !" &quo ...

  5. shell简介

    Shell作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支. shell使用的熟练程度反映了用户对U ...

  6. Shell碎碎念

    1. 字符串如何大小写转换 str="This is a Bash Shell script." 1> tr方式 newstr=`tr '[A-Z]' '[a-z]' < ...

  7. MongoDB学习笔记二—Shell操作

    数据类型 MongoDB在保留JSON基本键/值对特性的基础上,添加了其他一些数据类型. null null用于表示空值或者不存在的字段:{“x”:null} 布尔型 布尔类型有两个值true和fal ...

  8. 使用C#给Linux写Shell脚本

    在这个逼格决定人格,鄙视链盛行的年头,尤其是咱们IT界,请问您今天鄙视与被鄙视的次数分别是多少?如果手中没有一点压箱的本事,那就只有看的份了.今天我们也要提升下自己的格调,学习些脑洞大开的东西,学完之 ...

  9. Linux环境下shell和vim中乱码原因及消除办法

    shell和vim中乱码原因及消除办法 作者:Jack47 在Linux下开发,经常遇到乱码问题:shell或者vim中显示不了中文,或者能够显示,但不能输入中文.每次都是上网去搜,或者同事告诉我一些 ...

  10. 【说解】在shell中通过mkfifo创建命名管道来控制多个进程并发执行

    背景: 工作中有两个异地机房需要传数据,数据全名很规范,在某个目录下命名为统一的前缀加上编号.如/path/from/file.{1..100}.而机房间的专线对单个scp进程的传输速度是有限制的,比 ...

随机推荐

  1. java的特性和版本

    java的特性 简单性 面向对象性 可移植性(跨平台性) 高性能 安全性 健壮性 多线程 分布式 动态性 java的三个版本 javaSE(标准版),主要是桌面程序开发 javaME(微型版),主要是 ...

  2. sentinel监控数据持久化&本地测试

    官方文档  https://sentinelguard.io/zh-cn/ wiki: 在生产环境中使用-Sentinel 推荐方案:持久化到 时序数据库InfluxDB  : 结合Grafana 可 ...

  3. 记一次Mybatis-Plus动态分表DynamicTableNameInnerInterceptor里无法动态替换表名的坑

    首先上源码 protected String changeTable(String sql) { ExceptionUtils.throwMpe(null == tableNameHandler, & ...

  4. 1、app自动化的底层逻辑,adb及monkey和稳定性测试

    app自动化的过程中,底层逻辑是计算机通过adb与移动设备进行沟通,告诉移动设备,进行什么操作: 一.概念: Andriod调试桥(adb),是一种命令行工具,可以让我们与设备进行通讯. 二.adb安 ...

  5. burpsuite target 在渗透攻防中的利用

    可以用来收集目标站点的更多资产 可以探测一些自动加载的接口.内容等,有的内容并不能被访问者直接看见,通过抓包的方式就可以一目了然. 1栏中是流量信息,其中包含着你所请求的流量 2栏中是对1栏中内容的一 ...

  6. 在Mac的哪里可以找到bashrc文件

  7. 浅谈JS输出中的“+”作用问题

    背景(问题) web前端考试有这么一道题目(为了阅读方便和应文章的景,小编将题目进行了微调) <input type="number" value="1" ...

  8. 几十行代码实现简易版koa~

    application.js const http = require("http")// 洋葱模型 function compose(middleware){ return fu ...

  9. 如何在Debian10镜像中设置Nginx引擎模块

    目前,我们较多的服务器WEB环境都是用的Nginx引擎,我们采用服务器的目的是可以获取到更多的资源,而且建站数量是不受限制的.我们可以根据自己需要配置Nginx,可以自定义特定域的设置,允许您在单个服 ...

  10. C++ primer笔记 -变量和基本类型

    由于头文件会被包含在多个源文件中,所以不应该含有变量或者函数的定义.但又三个列外: 1.头文件可以定义类 2.值在编译时就已经知道的const对象(const对象默认为定义它的文件的局部变量,即在.c ...