文档章节

MongoDB集合的CURD

秋风醉了
 秋风醉了
发布于 2016/04/18 12:11
字数 649
阅读 67
收藏 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=======

© 著作权归作者所有

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

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

mickelfeng
02/08
0
0
。W/mongodb-weadmin

Mongodb-WeAdmin 项目介绍 Mongodb网页管理工具,基于Spring Boot2.0,前端采用layerUI实现。 源于线上环境部署mongodb时屏蔽了外网访问mongodb,所以使用不了mongochef这样方便的远程连接工具...

。W
11/22
0
0
MongoDB学习心得(整理中)

NoSQL(Not Only SQL)-非关系型数据库,又一种流行的数据库技术。除去复杂、臃肿的结构化语言,简单的几个函数就可以完成增删该处基本操作。NoSQL好比一个灵活的猴子,而SQL就像大笨象了。 ...

cjp路人
2013/11/03
0
0
mongodb怎么批量把集合内文档中的一个属性值赋给另个一属性

mongodb怎么批量把集合内文档中的一个属性值赋给另个一属性,如下为集合logs中的内容,怎么批量把每个文档中category的值赋值给data。 { "_id" : ObjectId("543747648cb646e609000001"), "dat...

crazyjingling
2014/11/20
822
3

没有更多内容

加载失败,请刷新页面

加载更多

kiss原则

KISS 原则是用户体验的高层境界,简单地理解这句话,就是要把一个产品做得连白痴都会用,因而也被称为“懒人原则”。换句话说来,”简单就是美“。KISS 原则源于 David Mamet(大卫马梅)的电...

NB-One
11分钟前
0
0
Spring Cloud Stream消费失败后的处理策略(三):使用DLQ队列(RabbitMQ)

应用场景 前两天我们已经介绍了两种Spring Cloud Stream对消息失败的处理策略: 自动重试:对于一些因环境原因(如:网络抖动等不稳定因素)引发的问题可以起到比较好的作用,提高消息处理的...

程序猿DD
16分钟前
0
0
MYSQL事务处理

INNODB 事务里,所有表引擎必须为INNODB,在非实务表上操作,不会警告,不会报错,但没有效果

关元
55分钟前
3
0
cmake 编译脚本

#!/bin/sh test -d build || mkdir -p build cd build cmake .. make

shzwork
今天
2
0
从零开始实现Vue简单的Toast插件

概述: 在前端项目中,有时会需要通知、提示一些信息给用户,尤其是在后台系统中,操作的正确与否,都需要给与用户一些信息。 1. 实例 在Vue组件的methods内,调用如下代码 `this``.$toast({...

前端小攻略
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部