文档章节

MongoDB集合的CURD

秋风醉了
 秋风醉了
发布于 2016/04/18 12:11
字数 649
阅读 66
收藏 1

MongoDB集合的CURD

集合的创建

创建固定大小的集合

// capped collections 就是固定大小的collection
db.createCollection("students", { capped: true})

这样创建一个固定大小的集合会报错,

specify size:<n> when capped is true

需要指定一个size参数,表示集合的最大容量,如下,

db.createCollection("students", { capped: true,size: 256})

size参数解释:

Specify a maximum size in bytes for a capped collection. Once a capped collection reaches its maximum size, MongoDB removes the older documents to make space for the new documents. The size field is required for capped collections and ignored for other collections.

同时还可以指定max参数,表示集合的最大文档数量,

db.createCollection("students", { capped: true,size: 256,max: 2})

max参数解释:

The maximum number of documents allowed in the capped collection. The size limit takes precedence over this limit. If a capped collection reaches the size limit before it reaches the maximum number of documents, MongoDB removes old documents. If you prefer to use the max limit, ensure that the size limit, which is required for a capped collection, is sufficient to contain the maximum number of documents.

也就是说当max参数和size参数同时出现时,size参数的优先级要高。在达到最大文档数量的限制之前,如果达到了size参数的限制,mongo就会删除老的文档,来插入新的文档。如果想使用max参数的限制,那么务必保证在size参数限制之内能够保存max参数所指定的最大文档数量。


隐式的创建集合

如下代码如果执行集合的插入命令,那么就是隐式的创建一个集合

db.teachers.insert(
    {   
        "name":"hello world",
        "idNo":"1111111111111"  
     }
)


集合插入文档

集合可以插入复杂的文档,这里的文档说白了就是js对像(json对象),如下,

db.inventory.insert(
   {
     item: "ABC1",
     details: {
        model: "14Q3",
        manufacturer: "XYZ Company"
     },
     stock: [ { size: "S", qty: 25 }, { size: "M", qty: 50 } ],
     category: "clothing"
   }
)

插入集合这样的文档对象,查询,

db.inventory.find()

就像这样,item,details,stock,category就像是关系型数据库的列(column),而其中details又包含了两个属性字段,stock又包含了两个element。


集合查询文档

查询所有

db.inventory.find()

查询一个

db.inventory.findOne()

根据条件来查询

db.inventory.find( { item: "EDF1" } )
//表示查询包含item属性字段并且属性字段等于EDF1的文档
db.inventory.find( { item: { $in: [ 'EDF1', 'ABC1' ] } } )
//使用$in查询操作符,表示查询包含item属性字段并且属性字段的值存在于[ 'EDF1', 'ABC1' ]的数组中的文档
db.inventory.find( { item: 'EDF1',category: "river"})
//使用and连接查询条件,两个查询条件item: 'EDF1' AND category: "river"。
db.inventory.find( { $or: [{ item: 'EDF1'},{category:"clothing"}] } )
//使用$or,表示有两个查询条件{ item: 'EDF1'},{category:"clothing"},满足一个即可

=======END=======

© 著作权归作者所有

共有 人打赏支持
秋风醉了
粉丝 232
博文 575
码字总数 405962
作品 0
朝阳
程序员
mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、等等)

最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网:https://www.mongodb.com/ MongoDB 是一个基于分布式文件存储的...

Airship
06/01
0
0
MongoDB 3.0新特性概述

MongoDB 在 2015年3月3日 跳过了 MongoDB 2.8版本,直接在 MongoDB 2.6版本后,发布了MongoDB 3.0版本。 随后在 2015年3月17日 发布了 MongoDB 3.0.1 版本; 在 2015年4月9日发布了 MongoDB ...

xinsir999
05/02
0
0
【翻译】使用Golang+MongoDB构建微服务

原创文章,转载请注明: 转载自勤奋的小青蛙 本文链接地址: 【翻译】使用Golang+MongoDB构建微服务 翻译来源:http://goinbigdata.com/how-to-build-microservice-with-mongodb-in-golang/ ...

mickelfeng
02/08
0
0
MongoDB 基本操作与MongoDB for JAVA

一、准备工作 1、 下载mongoDB 下载地址:http://www.mongodb.org/downloads 选择合适你的版本 相关文档:http://www.mongodb.org/display/DOCS/Tutorial 2、 安装mongoDB A、 不解压模式: ...

IT_小翼
2013/08/07
0
1
mongodb的安装及主从配置

一、mongodb安装 1.下载mongodblinux版本 https://www.mongodb.com/download-center#community 2.解压 tar xvf mongodb-linux-x86_64-2.0.7.tgz mkdir /usr/local/mongodb mv mongodb-linux......

Stereor
06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

谷歌 Fuchsia 上手体验,将取代Android/win10

在手机市场领域,Google表现很抢眼,毫无疑问,Android 至今在移动操作系统的市场份额占据绝对领先地位,但是 Android 仍然存在不少问题,碎片化问题严重,在平板以及大屏幕设备上表现糟糕,...

linux-tao
17分钟前
1
0
List、Array与ArrayList

数组在内存中是连续存储的,所以它的索引速度很快,而且赋值和修改元素也非常快,比如: string[] s=new string[3];//赋值 s[0]="a"; s[1]="b"; s[2]="c";//修改 s[1]="b1"; 但是数组...

shimmerkaiye
19分钟前
0
0
Linux 的Lnmp环境下为mysql添加环境变量

一.问题 在Linux 安装完Lnmp 环境后 , 连接Mysql 告诉没有这条命令 mysql -uroot -p 命令失效 因为是源码安装的,所以会出现这样的的原因 。集成环境是不会出现的。 其实很简单,只需要给m...

15834278076
21分钟前
3
0
apolloxlua include函数

include函数不是单独使用的函数, 他并不是标准库的一部分, 你可以使用include函数将某个后缀为 .aop的文档包含到你的文档流中。 因为include是单独处理流, 所以不会在主处理流程中有所表示...

钟元OSS
25分钟前
0
0
【转载分享】做一名较真的工程师

近些年与我共事过的同事,一定知道我至今仍有一个较真的性格。我会:指出同事所写代码的不当命名问题(并帮助改进);指出同事所写文档中的逻辑混乱问题(并辅以修订);指出同事所写PPT中乱...

HellerZhang
26分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部