MongoDB学习(二)

常用语句:

创建数据库:use database_name

示例:use myfisrtmongoDB

shell下提示:switched to db myfisrtmongoDB 表示成功

但此时用show dbs命令任然无法查看到新创建的数据库,需要插入第一条数据后,才可以查看。

删除数据库:db.dropDatabase()

该命令是删除当前的数据库

提示:{"dropped":"myfirstmongoDB","ok":1}

插入文档:db.collections_name.insert(document)

表示在当前数据库的名为collections_name的集合中插入一条文档

示例:db.cols.insert({"content":"myFirstRecorder","by":"insaneXs"})

记录插入完成后,可以通过db.collections_name.find()命令来查看该数据库下名为collections_name的集合中全部的记录(文档)。

我们也可以将数据定义成一个变量,然后再通过上述命令插入

示例:document_name = {"content":"insertByDocumentVar"}

db.cols.insert(document_name)

定义了一个名为document_name的document变量,然后将document变量插入到集合中。

更新文档:mongoDB更新文档有两种方式,update()和save()

update()的语法格式:

db.collections_name.update(criteria, objNew, upsert, multi, writeConcern)

criteria:标准,即是查询条件,相当于SQL语句中的where语句

objNew: update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的部分

upsert: boolean类型,可选,表示文档不存在时,是否插入该文档,true表示插入,数据库默认为false

multi:boolean类型,可选,表示多条记录满足时,是否更新全部记录,true表示更新全部记录,数据库默认为false

writerConcert:可选,表示抛出异常的级别

示例:

db.cols.update({"content":"insertByDocumentVar"},{$set:{"content":"recorderUpdateByupdate"},true,true})

意义:

将当前数据库下cols集合中content值为insertByDocumentVar的文档全部更新成set后的文档(字段如果存在,则更新值,不存在,则在之前基础上增加字段),如果不存在,则插入该文档。

save():通过传入的文档来替换已有的文档

db.collections.save(x), x即是要更新的文档,mongoDB会根据x的_id的值去数据库中查找要更新的文档,如果不存在,则插入该文档。

示例:

db.cols.save({"_id":ObjectId("56a860650c412f8aa5c4c25a"),"content":"updateRecorderBySave"})

意义:将db数据库下的cols集合中的id为"56a860650c412f8aa5c4c25a"的文档替换(由于是文档被替换,因此如果新文档不含旧文档的其他字段时,其他字段将被删除。),没有则插入该记录(插入时id将不是自动生成,而就是id的值)。

mongoDB中的更新操作符

$inc 对一个int字段增加一个val值

{$inc:{filed:value}}

示例:

db.cols.update({"count":1},{$inc : {"count":1}})

意义:将当前数据库的cols集合中count等于1的文档中的count字段增加1

$set 相当于sql的set field = value,全部数据类型都支持

用法:{ $set : { field : value } }
示例:参考文章开头

$unset 删除某个字段

用法:{$unset:{filed : value}}

数据库先插入一条数据db.cols.insert{"filed1":"1","filed2":"2"};

示例:db.cols.update({"filed1":"1"},{$unset:{"filed2":"2"}})

用db.cols.find().pretty()查询

看到结果为:{ "_id" : ObjectId("56a874310c412f8aa5c4c261"), "field1" : "1" }

$push 将某个值追加到指定的filed中,该field必须要是数组

用法:{$push:{filed:value}}

示例:

数据库先插入一条数据 db.cols.insert{"myArray":["a","b"], "count":1}

db.cols.update({"content":1},{$push:{"c"}})

在查询集合,可看到结果:

  "_id" : ObjectId("56a877ec04d77a4fe6e85ffb"),
  "count" : 1,
  "myArray" : [
  "a",
  "b",
  "c"
]

$pushAll 和$push类似,只是$pushAll可以追加多个值到某个数组字段中

用法:{$pushAll:{field:array}}

示例同上,不再赘述,但是要注意字段值必须要是array

$addToSet 仅当某个值不再数组内时,才往数组中添加这个值

用法:{$addToSet:{field : value}}

示例同上,field必须要是数组。

$pop 删除数组内的一个值

用法:

删除数组最后一个值:{$pop :{field : 1}}

删除数组头一个值:{$pop : {field : -1}}

$pull 从field的数组内删除值为value的值

用法:{$pull : {filed:value}}

用法同上,如果有多个值为value,则全部删除

$pullAll 从field的数组内删除在数组array中的值

用法:{$pull : {filed : array}}

用法同上。

$ 操作符 表示从数组中找出是自己的那项

 因为得到的是该项的filed值,故要加上引号(红字部分)。

看一下官方的例子:> t.find(){ "_id" : ObjectId("4b97e62bf1d8c7152c9ccb74"), "title" : "ABC",  "comments" : [ { "by" : "joe", "votes" : 3 }, { "by" : "jane", "votes" : 7 } ] }

> t.update( {‘comments.by‘:‘joe‘}, {$inc:{‘comments.$.votes‘:1}}, false, true )

> t.find(){ "_id" : ObjectId("4b97e62bf1d8c7152c9ccb74"), "title" : "ABC",  "comments" : [ { "by" : "joe", "votes" : 4 }, { "by" : "jane", "votes" : 7 } ] }

需要注意的是,$只会应用找到的第一条数组项,后面的就不管了。还需要注意的是,$和$unset联合使用会在数组中留下一条为NULL的记录> t.insert({x: [1,2,3,4,3,2,3,4]}> t.find({ "_id" : ObjectId("4bde2ad3755d00000000710e"), "x" : [ 1, 2, 3, 4, 3, 2, 3, 4 ] }> t.update({x:3}, {$unset:{"x.$":1}})
> t.find(){ "_id" : ObjectId("4bde2ad3755d00000000710e"), "x" : [ 1, 2, null, 4, 3, 2, 3, 4 ] }

MongoDB删除文档:db.collection_name.remove()用法:db.collection_name.remove(query, justone)query:查询条件justone:表示有多条记录满足时,是否要同时删除,可选,默认为false

删除一个集合中的全部文档:db.collection_name.remove({})只删除第一个符合条件的元素:db.collection_name.remove({条件},1)

MongoDB查询文档:db.collection_name.find()将查询结果格式化显示:db_collection_name.find().pretty()

AND条件查询:用法:db.collection_name.find({filed1:value,field2:value....})

OR条件查询:用法:db.collection_name.find({$or:[{filed:value},{field:value}]});OR条件查询像是把多个条件放在一个数组中,然后由该数组构成一个文档,而AND条件查询则是各个条件直接构成一个文档。
 参考:http://www.runoob.com/mongodb/mongodb-tutorial.html
时间: 2024-10-10 14:08:20

MongoDB学习(二)的相关文章

mongodb 学习二

基本操作 增删改查实一个数据库必备的操作,接下来我们就说说怎么在shell下进行增删改查. 我们另外打开一个"命令指示符"窗口(注意:之前的不能关闭),输入mongo打开MongoDB的shell,这个shell就是MongoDB的客户端 F:\mongodb\data\bin>mongo MongoDB shell version: 3.4.4 connecting to: test > 默认连接的数据库是"test" 增增加操作 我们来增加一个名为&

MongoDB学习总结(二)

前言:学习札记! MongoDB学习总结(二) 1.  安装.初识 之前写过一篇MongoDB的快速上手文章,里边详细的讲了如何安装.启动MongoDB,这里就不再累述安装过程,简单介绍一下Mongodb的基本操作. 打开命令行窗口,输入“mongo”命令,默认会连接到test数据库. l  Insert db.person.insert({"name":"Olive","age":18}) db.person.insert({"nam

MongoDB 学习笔记(二) 之查询

最简单的查询 个人认为mongoDB是面向对象的吧. 例如最简单的查询  整个数据集只有三条数据 第一查询姓名为张三的  数据 查询的条件比较好写 随意   db.collection.find(查询条件)   例如 15 得到的结果是这样 如果你不想返回某个字段呢 ,你可以自己定义返回的字段值 语法这样 db.collection.find({查询条件},{返回字段}) 16 我们看到每次查询 "_id" 这个字段 都返回  我们可以将它设置为0 这样的话就不会返回 如 查询条件里的

MongoDB入门学习(二):MongoDB的基本概念和数据类型

上一篇讲了MongoDB的安装和管理,其中涉及到了一些概念,数据结构还有一些API的调用,不知道的没关系,其实很简单,这篇会简单介绍一下. 1.文档 文档是MongoDB的核心概念,多个键值对有序的放在一起就是一个文档,文档是MongoDB存储数据最基本的数据结构.对MongoDB都是以文档的形式来操作的,使用了一种类似JSON的二进制BSON数据格式,对API的调用都是传的文档参数.每种编程语言都有标示文档的数据结构,比如java的map,lua的table,python的dict等等,但是都

MongoDB学习:(二)MongoDB简单使用

MongoDB学习:(二)MongoDB简单使用 MongoDB使用: 执行mongodb的操作之前,我们需要运行命令,来进入操作命令界面 >mongo 提示该错误,说明我们系统缺少一个补丁,该补丁我百度盘连接为:https://pan.baidu.com/s/1pKPyPoJ 官方地址为:http://hotfixv4.microsoft.com/Windows%207/Windows%20Server2008%20R2%20SP1/sp2/Fix405791/7600/free/451413

MongoDB 学习笔记(二) 高级查询

1.条件运算符 2.$all 匹配所有 3.$exists 判断字段是否存在 4.NUll 值处理 5.$mod 取模处理 6.$ne 不等于 7. $in 包含,与sql用法相同 8. $nin 不包含,与sql用法相同 9.$size 数组个数 10.正则表达式 11.$where 查询 12.javascript 查询 13.Count.skip. limit 14.sort 排序 15.游标 16.存储过程 javascript 写法 MongoDB 学习笔记(二) 高级查询

MongoDB学习笔记一:MongoDB的下载和安装

趁着这几天比较空闲,准备学习一下MongoDB数据库,今天就简单的学习了一些MongoDB的下载和安装,并创建了存储MongoDB的数据仓库.将自己今天学习到的写成博客分享给大家. 一.MongoDB的下载和安装 MongoDB的下载地址为:http://www.mongodb.org/ 1.进入官网的首页后,在首页的右上方单击Downloads连接,如图所示: 2.在页面中可以看到目前最新的版本和以前发布过的版本,这里选择最新版本,windows 32位的进行下载,文件的格式为ZIP格式的,单

Mongodb学习笔记

总结下这几天Mongodb学习笔记 /** * 获取MongoClient * @author xuyw * @email [email protected] * @param host * @param port * @return */ public static MongoClient getMongoClient(String host, int... port) { MongoClient mongoClient = null; int portlen = 0; try { if (p

mongodb学习笔记系列一

一.简介和安装 ./bin/mongod --dbpath /path/to/database --logpath /path/to/log --fork --port 27017 mongodb非常的占磁盘空间, 刚启动后要占3-4G左右,--smallfiles 二.基本命令 1.登录mongodb client /use/local/mongo 2.查看当前数据库 show databases; show dbs; 两个可能 3.admin是和管理有关的库,local 是放schema有关