Mongodb是面向文档的数据库,不是关系型的,将关系型数据库的Row 转换为Document(每个文档都有一个_id,ObjectId是_id的默认类型“0123(时间戳)456(机器)78(PID)91011(计数器)”),长度不固定,更加灵活,这种Key Value的存储方式也是MapReduce的一个基础。Mongodb具有很多优秀的功能,比如 索引功能,存储javascript,功能(用来替代存储过程),聚合函数的支持,固定大小的集合(capped),还有文件系统GridFS用来存储文件
Mongodb的内置数据库有admin,local,config(分片时用)
数据类类型:null,布尔,数字(没法区分浮点数和证书,32位或64位),字符串,数组,对象
null {"x":null} 布尔 {"x":true} 字符串 {"x":"foobar"} 对象ID {"x":ObjectId()} 日期 {"x":new Date()} 未定义 {"x":undefined} 数组 {"x":["a","b"]} 内嵌文档 {"x":{"a":1}}
下面看下CRUD
先新建一个Document,然后插入数据,在查询
> db.testcreate.insert({"title":"test create document","content":"this is a test create document"}); WriteResult({ "nInserted" : 1 }) > db.testcreate.insert({"title":"test2 create document","content":"this is a tes t create document"}); WriteResult({ "nInserted" : 1 }) > db.testcreate.findOne(); { "_id" : ObjectId("546d5ad18ab176b70534278f"), "title" : "test create document", "content" : "this is a test create document" } > > db.testcreate.find(); { "_id" : ObjectId("546d5ad18ab176b70534278f"), "title" : "test create document" , "content" : "this is a test create document" } { "_id" : ObjectId("546d5b1b8ab176b705342790"), "title" : "test2 create document ", "content" : "this is a test create document" } { "_id" : ObjectId("546d5b2b8ab176b705342791"), "title" : "test3 create document ", "content" : "this is a test create document" } >
在看下Remove,可以删除整合集合,使用db.testcreate.drop();
> db.testcreate.remove({"title":"test create document"}); WriteResult({ "nRemoved" : 1 }) > db.testcreate.find(); { "_id" : ObjectId("546d5b1b8ab176b705342790"), "title" : "test2 create document ", "content" : "this is a test create document" } { "_id" : ObjectId("546d5b2b8ab176b705342791"), "title" : "test3 create document ", "content" : "this is a test create document" } >
在来测试下Update,shell这样写比较麻烦,需要先定义好新文档的结构,然后在执行Update根据一定的条件
原来的定义
> db.testcreate.insert(testcreate); WriteResult({ "nInserted" : 1 }) > db.testcreate.find(); { "_id" : ObjectId("546d5b1b8ab176b705342790"), "title" : "test2 create document ", "content" : "this is a test create document" } { "_id" : ObjectId("546d5b2b8ab176b705342791"), "title" : "test3 create document ", "content" : "this is a test create document" } { "_id" : ObjectId("546d5d398ab176b705342792"), "title" : "thisisatest", "conten t" : "hereis my blog post", "date" : ISODate("2014-11-20T03:16:58.521Z") } >
修改
> testcreate ={"title":"thisisatest","content":"hereis my blog post","date":new Date()} { "title" : "thisisatest", "content" : "hereis my blog post", "date" : ISODate("2014-11-20T03:20:14.868Z") } > testcreate.comments =[]; [ ] > db.testcreate.update({"title":"thisisatest"},testcreate); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) > db.testcreate.find(); { "_id" : ObjectId("546d5b1b8ab176b705342790"), "title" : "test2 create document ", "content" : "this is a test create document" } { "_id" : ObjectId("546d5b2b8ab176b705342791"), "title" : "test3 create document ", "content" : "this is a test create document" } { "_id" : ObjectId("546d5d398ab176b705342792"), "title" : "thisisatest", "conten t" : "hereis my blog post", "date" : ISODate("2014-11-20T03:20:14.868Z"), "comme nts" : [ ] } >
修改是个复杂的操作,为了应对复杂的需求,Mongo提供了一些修改器来提高修改的效率,主要有$inc递增, $set 修改器,用来修改指定Key的值,如果不存在,那么创建它,
数组修改器:$push,$pull ,$ 定位符
upsert:没有符合的文档则创建,有则更新
另外,在更新的时候不能更新_id,只有当整合文档都替换的时候才可以更新_id,由于MongoDb默认是异步修改数据的,那么想要知道更新是否成功可以使用getLastError来获得,更近一步,使用findAndModify来获取修改后的记录。
相关推荐
总的来说,掌握MongoDB的基础知识对于开发人员来说至关重要,无论是理解数据模型、提高查询效率,还是构建可扩展和可靠的应用程序,MongoDB都提供了强大的工具和支持。通过深入学习和实践,开发者可以充分利用...
本教程将引导你逐步了解MongoDB的基础知识,深入其架构,并展示如何在Java环境中使用MongoDB。 首先,我们从"MongoDB入门教程"开始。MongoDB采用的是键值对存储方式,数据以JSON格式(BSON)存储,这使得数据的读写...
### MongoDB入门知识点详解 #### 一、NoSQL简介与MongoDB概述 - **NoSQL**:NoSQL(Not Only SQL)是一种非关系型数据库管理系统的总称,它突破了传统关系型数据库在处理大规模数据时的限制,尤其适用于大数据及高...
在这个“MongoDB入门”主题中,我们将深入探讨MongoDB的基础知识、安装与配置、数据模型、查询操作以及高级特性。 首先,让我们了解MongoDB的基本概念。MongoDB以其“集合”(Collections)和“文档”(Documents)...
### MongoDB入门到精通知识点概述 #### 一、MongoDB简介 MongoDB是一种开源的文档数据库,采用JSON格式存储数据,并提供了高性能、高可用性和自动扩展的能力。它属于NoSQL数据库的一种,非常适合处理大规模数据和...
本书《mongodb入门》是一本旨在帮助初学者快速学习MongoDB基本用法的入门小书。它适合那些希望在短时间内掌握MongoDB核心概念和操作的读者。作者Karl Seguin是一位拥有丰富技术背景的开发者,其经历跨越多个领域和...
本篇文章将深入介绍MongoDB的基础知识,包括它的应用背景、主要特性、数据库概念、安装部署以及基本操作。 在国内,MongoDB被广泛应用于互联网公司,如电商平台、社交网络和大数据分析等场景。在国外,其应用更为...
首先,MongoDB的基础知识包括其NoSQL的数据模型。不同于传统的关系型数据库,MongoDB使用文档(BSON格式)存储数据,这些文档是JSON风格的键值对,允许更自由的数据结构。例如,你可以存储嵌套的文档、数组和复杂的...
MongoDB 是一种流行的开源NoSQL数据库,以其面向文档的数据模型、高性能、高可用性和高可扩展性而闻名...无论是初学者还是经验丰富的开发者,都需要掌握MongoDB的基础知识和操作技巧,以便在实际项目中充分利用其优势。
总的来说,MongoDB入门篇1涵盖了数据库和数据库管理系统的基础知识,特别是对于NoSQL数据库的介绍,有助于理解不同类型的数据库系统如何适应不同的应用场景。MongoDB作为一个流行的NoSQL数据库,特别适合于需要处理...
一、MongoDB基础知识 MongoDB是一种文档型数据库,采用键值对(BSON格式)存储数据,这种数据模型灵活,适合半结构化和非结构化数据的存储。MongoDB的核心特点是横向扩展性,通过在多台服务器上分片(Sharding)和...
mongodb 基础知识入门详解:优,缺点,常用命令,数据基础操作解析
本入门教程集合了cnblog上的多篇文章,旨在帮助初学者快速掌握MongoDB的基础知识。 首先,MongoDB学习笔记(一)介绍了MongoDB的基本概念和安装过程。在这个阶段,读者会了解到MongoDB的特性,如它的JSON格式数据存储...
在本文中,我们将深入探讨MongoDB的基础知识,包括其特性、操作命令、索引以及在Linux上的安装过程。 MongoDB 的核心概念包括数据库、集合和文档。数据库是MongoDB中的逻辑单元,类似于关系数据库中的数据库。集合...
MongoDB是一种流行的开源文档型数据库,它属于NoSQL数据库范畴,以其灵活性、高...在学习过程中,建议动手实践,通过创建自己的数据库和应用来巩固知识,同时不断关注MongoDB的最新发展和社区资源,以保持与时俱进。
### MongoDB入门学习知识点详解 #### 一、MongoDB简介与特点 MongoDB是一款非常流行的开源文档型NoSQL数据库系统,采用C++语言实现,具备高度的可扩展性和高性能。它适用于处理大规模的数据集,并提供了丰富的功能...
本教程将帮助初学者了解MongoDB的基础知识,包括安装、基本操作、数据模型、查询以及高级特性。 一、MongoDB简介 MongoDB以JSON格式的文档作为数据存储单元,这种数据模型使得它非常适合处理半结构化和非结构化数据...
本教程“MongoDB 从入门到精通”旨在帮助你全面理解MongoDB的基础知识以及如何在Java应用中有效使用它。首先,我们从安装MongoDB开始,你需要下载适合你操作系统的MongoDB服务器,并按照官方指南进行安装配置。安装...
在《MongoDB权威指南》这本书中,作者详细地介绍了MongoDB的基础知识、安装配置、数据模型、查询语言、操作管理以及高级特性。以下是对这本书中核心知识点的概述: 1. **MongoDB基础知识**:MongoDB是NoSQL数据库的...