文档章节

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=======

© 著作权归作者所有

共有 人打赏支持
秋风醉了
粉丝 236
博文 578
码字总数 419420
作品 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
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 基本操作与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
【翻译】使用Golang+MongoDB构建微服务

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

mickelfeng
02/08
0
0
MongoDB在windows下安装教程

先在mongoDB的官网上下载个稳定版本http://www.mongodb.org/ 将下载的压缩包解压,并在根目录下新建两个文件夹,分别命名data(存放数据)和logs(存放日志),在logs文件夹下新建mongodb.log文件...

Bingo许
2012/11/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Nginx 配置url 跳转

Step 1:前言 公司一个管理后台,每次访问要写很长的参数,想直接访问域名就去管理页面 Step 2:配置 location / { rewrite ^/$ http://pay-admin.sasha-lab.com/index.php?m=admin&c...

Linux_Anna
27分钟前
2
0
php7在FreeBSD系统下静态编译iconv,导致BUS ERROR (core dump)解决

bug页面: https://bugs.php.net/bug.php?id=72198 触发此bug需要很多条件: FreeBSD系统(10.0以上),Linux系统、MacOS下均无此问题 静态编译iconv扩展,动态iconv扩展也无此问题 系统安装了...

hell0cat
30分钟前
3
0
FireFox下载时文件名乱码问题解决

String filename = java.net.URLEncoder.encode(file.getName(), "UTF-8"); response.setHeader("Content-Disposition", "attachment;filename*=utf-8'zh_cn'" + filename);......

放飞E梦想O
38分钟前
1
0
Spring声明式事务不回滚问题

注解 @Transactional 声明事务 内部调用方法不会走代理方式调用,而是类内部的函数调用,有事务注解也不会开启事务 但是当A有事务调用B时,B会加入A事务中,使之为同一事务 A无事务 ,B有事务...

职业搬砖20年
39分钟前
3
0
高并发的“大杀器”:异步化、并行化

高并发的大杀器:异步化 同步和异步,阻塞和非阻塞 同步和异步,阻塞和非阻塞,这几个词已经是老生常谈,但是还是有很多同学分不清楚,以为同步肯定就是阻塞,异步肯定就是非阻塞,其实他们并...

微笑向暖wx
40分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部