文档章节

MongoDB集合的CURD

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

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

© 著作权归作者所有

共有 人打赏支持
秋风醉了
粉丝 223
博文 581
码字总数 411013
作品 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

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

安装配置MongoDB3.6.3数据库以及启动脚本

linxu上安装mongodb3.6实战 根据linux 版本到官网下载对应mongodb版本 下载 https://fastdl.mongodb.org/linux/mongodb-linux-x8664-3.6.3.tgz 查看服务器版本:cat /proc/version 查看linux...

秦时明月路 ⋅ 今天 ⋅ 0

mongodb的命令行操作命令详解(增删改查、高级查询)

mongodb的命令行操作命令详解(增删改查、高级查询) 本文为上文的续篇,主要讲解mongodb在cmd的直接操作命令,我的mongodb是安装在d:mongodb下 1,mongodb启动服务 : 2,mongodb停止服务 : ...

xiaocao13140 ⋅ 06/04 ⋅ 0

Docker MongoDB 部署

MongoDB 是一款较为常用的NOSQL 数据库,结合 Docker 使用,能实现轻松配置部署、迁移,本文以下为简要介绍如何在 Docker 中部署并使用 MongoDB。下文主要分为几个部分,内容如下: MongoDB ...

speculatecat ⋅ 04/06 ⋅ 0

Node后台|数据库的安装及使用(简版)

MAC 安装mongoDB 启动 mongoDB 判断mongoDB是否已经开启 关闭 mongoDB的服务 mongodb启动成功后会显示 然后我们去看看node如何连接mongodb node 连接mongoDB需要用到 mongoose 如果连接成功的...

贝一平 ⋅ 05/30 ⋅ 0

【mongodb】命令及API,会这些足够

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

霜叶情 ⋅ 05/23 ⋅ 0

MongoDB · 引擎特性 · journal 与 oplog,究竟谁先写入?

MongoDB journal 与 oplog,谁先写入?最近经常被人问到,本文主要科普一下 MongoDB 里 oplog 以及 journal 这两个概念。 journal journal 是 MongoDB 存储引擎层的概念,目前 MongoDB主要支...

db匠 ⋅ 05/22 ⋅ 0

MongoDB 无法启动,WiredTiger 如何恢复数据(二)?

之前写过一篇MongoDB 无法启动,如何恢复数据的文章,介绍了几种从无法启动的 MongoDB 节点恢复数据的方法,主要包括: 如果配置了副本集多节点,则从其他节点恢复(强烈建议重要的数据至少要...

张友东 ⋅ 04/30 ⋅ 0

MongoDB 4.0 RC 版本强势登陆

MongoDB 因其灵活的文档模型、可扩展分布式设计广受开发者喜爱,在此基础上,MongoDB 4.0 推出了更强大的功能支持,目前4.0第一个RC版本已经发布,本文将介绍 MongoDB 4.0 核心的一些新特性。...

张友东 ⋅ 05/30 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

常见数据结构(二)-树(二叉树,红黑树,B树)

本文介绍数据结构中几种常见的树:二分查找树,2-3树,红黑树,B树 写在前面 本文所有图片均截图自coursera上普林斯顿的课程《Algorithms, Part I》中的Slides 相关命题的证明可参考《算法(第...

浮躁的码农 ⋅ 4分钟前 ⋅ 0

android -------- 混淆打包报错 (warning - InnerClass ...)

最近做Android混淆打包遇到一些问题,Android Sdutio 3.1 版本打包的 错误如下: Android studio warning - InnerClass annotations are missing corresponding EnclosingMember annotation......

切切歆语 ⋅ 20分钟前 ⋅ 0

eclipse酷炫大法之设置主题、皮肤

eclipse酷炫大法 目前两款不错的eclipse 1.系统设置 Window->Preferences->General->Appearance 2.Eclipse Marketplace下载【推荐】 Help->Eclipse Marketplace->搜索‘theme’进行安装 比如......

anlve ⋅ 28分钟前 ⋅ 0

vim编辑模式、vim命令模式、vim实践

vim编辑模式 编辑模式用来输入或修改文本内容,编辑模式除了Esc外其他键几乎都是输入 如何进入编辑模式 一般模式输入以下按键,均可进入编辑模式,左下角提示 insert(中文为插入) 字样 i ...

蛋黄Yolks ⋅ 32分钟前 ⋅ 0

大数据入门基础:SSH介绍

什么是ssh 简单说,SSH是一种网络协议,用于计算机之间的加密登录。 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码...

董黎明 ⋅ 51分钟前 ⋅ 0

web3j教程

web3j是一个轻量级、高度模块化、响应式、类型安全的Java和Android类库提供丰富API,用于处理以太坊智能合约及与以太坊网络上的客户端(节点)进行集成。 汇智网最新发布的web3j教程,详细讲解...

汇智网教程 ⋅ 58分钟前 ⋅ 0

谷歌:安全问题机制并不如你想象中安全

腾讯科技讯 5月25日,如今的你或许已经对许多网站所使用的“安全问题机制”习以为常了,但你真的认为包括“你第一个宠物的名字是什么?”这些问题能够保障你的帐户安全吗? 根据谷歌(微博)安...

问题终结者 ⋅ 58分钟前 ⋅ 0

聊聊spring cloud gateway的RedisRateLimiter

序 本文主要研究下spring cloud gateway的RedisRateLimiter GatewayRedisAutoConfiguration spring-cloud-gateway-core-2.0.0.RELEASE-sources.jar!/org/springframework/cloud/gateway/con......

go4it ⋅ 今天 ⋅ 0

169. Majority Element - LeetCode

Question 169. Majority Element Solution 思路:构造一个map存储每个数字出现的次数,然后遍历map返回出现次数大于数组一半的数字. 还有一种思路是:对这个数组排序,次数超过n/2的元素必然在中...

yysue ⋅ 今天 ⋅ 0

NFS

14.1 NFS介绍 NFS是Network File System的缩写 NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本 NFS数据传输基于RPC协议,RPC...

派派菠菜 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部