`
chenhua_1984
  • 浏览: 1253881 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

mongodb 入门基础知识

阅读更多

     

     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基础知识详解(值得珍藏).pdf

    总的来说,掌握MongoDB的基础知识对于开发人员来说至关重要,无论是理解数据模型、提高查询效率,还是构建可扩展和可靠的应用程序,MongoDB都提供了强大的工具和支持。通过深入学习和实践,开发者可以充分利用...

    MongoDB入门教程 + 架构简析 + java使用MongoDB的简单程序

    本教程将引导你逐步了解MongoDB的基础知识,深入其架构,并展示如何在Java环境中使用MongoDB。 首先,我们从"MongoDB入门教程"开始。MongoDB采用的是键值对存储方式,数据以JSON格式(BSON)存储,这使得数据的读写...

    MongoDB入门.pdf

    ### MongoDB入门知识点详解 #### 一、NoSQL简介与MongoDB概述 - **NoSQL**:NoSQL(Not Only SQL)是一种非关系型数据库管理系统的总称,它突破了传统关系型数据库在处理大规模数据时的限制,尤其适用于大数据及高...

    MongoDB 入门

    在这个“MongoDB入门”主题中,我们将深入探讨MongoDB的基础知识、安装与配置、数据模型、查询操作以及高级特性。 首先,让我们了解MongoDB的基本概念。MongoDB以其“集合”(Collections)和“文档”(Documents)...

    mongoDB入门到精通.txt

    ### MongoDB入门到精通知识点概述 #### 一、MongoDB简介 MongoDB是一种开源的文档数据库,采用JSON格式存储数据,并提供了高性能、高可用性和自动扩展的能力。它属于NoSQL数据库的一种,非常适合处理大规模数据和...

    mongodb入门

    本书《mongodb入门》是一本旨在帮助初学者快速学习MongoDB基本用法的入门小书。它适合那些希望在短时间内掌握MongoDB核心概念和操作的读者。作者Karl Seguin是一位拥有丰富技术背景的开发者,其经历跨越多个领域和...

    mongodb入门篇

    本篇文章将深入介绍MongoDB的基础知识,包括它的应用背景、主要特性、数据库概念、安装部署以及基本操作。 在国内,MongoDB被广泛应用于互联网公司,如电商平台、社交网络和大数据分析等场景。在国外,其应用更为...

    MongoDB基础教程

    首先,MongoDB的基础知识包括其NoSQL的数据模型。不同于传统的关系型数据库,MongoDB使用文档(BSON格式)存储数据,这些文档是JSON风格的键值对,允许更自由的数据结构。例如,你可以存储嵌套的文档、数组和复杂的...

    五、MongoDB 学习PPT

    MongoDB 是一种流行的开源NoSQL数据库,以其面向文档的数据模型、高性能、高可用性和高可扩展性而闻名...无论是初学者还是经验丰富的开发者,都需要掌握MongoDB的基础知识和操作技巧,以便在实际项目中充分利用其优势。

    MongoDB入门篇1

    总的来说,MongoDB入门篇1涵盖了数据库和数据库管理系统的基础知识,特别是对于NoSQL数据库的介绍,有助于理解不同类型的数据库系统如何适应不同的应用场景。MongoDB作为一个流行的NoSQL数据库,特别适合于需要处理...

    mongodb入门学习资料

    一、MongoDB基础知识 MongoDB是一种文档型数据库,采用键值对(BSON格式)存储数据,这种数据模型灵活,适合半结构化和非结构化数据的存储。MongoDB的核心特点是横向扩展性,通过在多台服务器上分片(Sharding)和...

    mongodb 入门详解

    mongodb 基础知识入门详解:优,缺点,常用命令,数据基础操作解析

    MongoDB入门教程

    本入门教程集合了cnblog上的多篇文章,旨在帮助初学者快速掌握MongoDB的基础知识。 首先,MongoDB学习笔记(一)介绍了MongoDB的基本概念和安装过程。在这个阶段,读者会了解到MongoDB的特性,如它的JSON格式数据存储...

    mongoDB入门使用.pptx

    在本文中,我们将深入探讨MongoDB的基础知识,包括其特性、操作命令、索引以及在Linux上的安装过程。 MongoDB 的核心概念包括数据库、集合和文档。数据库是MongoDB中的逻辑单元,类似于关系数据库中的数据库。集合...

    MongoDB入门的一些资料

    MongoDB是一种流行的开源文档型数据库,它属于NoSQL数据库范畴,以其灵活性、高...在学习过程中,建议动手实践,通过创建自己的数据库和应用来巩固知识,同时不断关注MongoDB的最新发展和社区资源,以保持与时俱进。

    MongoDB入门学习

    ### MongoDB入门学习知识点详解 #### 一、MongoDB简介与特点 MongoDB是一款非常流行的开源文档型NoSQL数据库系统,采用C++语言实现,具备高度的可扩展性和高性能。它适用于处理大规模的数据集,并提供了丰富的功能...

    mongodb入门教程

    本教程将帮助初学者了解MongoDB的基础知识,包括安装、基本操作、数据模型、查询以及高级特性。 一、MongoDB简介 MongoDB以JSON格式的文档作为数据存储单元,这种数据模型使得它非常适合处理半结构化和非结构化数据...

    mongodb 从入门到精通

    本教程“MongoDB 从入门到精通”旨在帮助你全面理解MongoDB的基础知识以及如何在Java应用中有效使用它。首先,我们从安装MongoDB开始,你需要下载适合你操作系统的MongoDB服务器,并按照官方指南进行安装配置。安装...

    MongoDB权威指南中文版高清版带书签PDF

    在《MongoDB权威指南》这本书中,作者详细地介绍了MongoDB的基础知识、安装配置、数据模型、查询语言、操作管理以及高级特性。以下是对这本书中核心知识点的概述: 1. **MongoDB基础知识**:MongoDB是NoSQL数据库的...

Global site tag (gtag.js) - Google Analytics