欢迎投稿

今日深度:

mongoDB学习(二)之常用的修改操作,mongodb学习修

mongoDB学习(二)之常用的修改操作,mongodb学习修改


插入文档(插入数据库)
db.person.insert({_id:"0001",name"yuexin"})
清除数据
db.person.drop()
批量插入文档
shell中不支持批量插入
完成批量插入使用for循环
 for(var i=0;i<10;i++){
.. db.persons.insert({_id:i,name:"yuexin"+i})
.. }


save操作
save操作与insert操作的区别是当id一样的时候save会变成更新操作而insert会报错


删除列表中所有数据
 db.persons.remove()删除persons中的数据但是不删除索引(db.system.indexes.find()中有值)
对于
db.person.drop()会删除索引
删除带查询条件的
db.persons.remove({_id:"3"})


如果想清除一个数据量十分庞大的集合,直接删除该集合并且重新建立索引的办法要比直接用remove的效率高很多。


1.强硬的文档替换式更新操作
update更新
> db.persons.update({age:55},{name:"000"})
2.主键冲突时时候会报错并且停止更新操作
因为是强硬替换的文档和已有文档id冲突时时候会报错
3.insertOrUpdate操作
目的:查询器查询出来数据就执行更新操作,查不出来就替换操作
做法:> db.persons.update({name:"0004"},{name:"1114"},true)
4.批量更新
> db.persons.update({name:"yuexin"},{$set:{name:"text"}},false,true)
默认情况当查询器查出多条数据的时候默认就修改第一条数据。
db.[documentName].update({查询器},{修改器},false,true)


修改器:
$set 用来指定一个键值对,如果存在就进行修改,不存在就进行添加
$inc 只是使用于数字类型,他可以为指定的键对应的数字类型的数值做加减操作。
> db.persons.update({age:20},{$inc:{age:-2}})
$unset 删除指定的键
> db.persons.update({age:18},{$unset:{age:1}})
$push 
1.如果指定的键是数组追加新的数值
> db.persons.insert({_id:0,name:0,book:[]})
> db.persons.find()
{ "_id" : 0, "name" : 0, "book" : [ ] }
> db.persons.update({name:0},{$push:{book:"abc"}})
> db.persons.find()
{ "_id" : 0, "book" : [ "abc" ], "name" : 0 }
> db.persons.update({name:0},{$push:{book:"abcd"}})
> db.persons.update({name:0},{$push:{book:"abcd"}})
> db.persons.find()
{ "_id" : 0, "book" : [ "abc", "abcd", "abcd" ], "name" : 0 }
2.如果指定的键不是数组,则中断当前操作
Cannot apply $push/$pushAll modifier to non-array
3.如果不存在指定的键则创建数组类型的键值对
> db.persons.update({name:0},{$push:{things:"abcd"}})
> db.persons.find()
{ "_id" : 0, "book" : [ "abc", "abcd", "abcd" ], "name" : 0, "things" : [ "abcd"
 ] }


$pushAll 与push相似,是批量加入数组数据
> db.persons.update({name:0},{$pushAll:{things:["abcd","01","02"]}})
> db.persons.find()
{ "_id" : 0, "book" : [ "abc", "abcd", "abcd" ], "name" : 0, "things" : [ "abcd"
, "abcd", "01", "02" ] }


$addToSet 目标数组存在此项则不操作,不存在此项则加进去
> db.persons.insert({_id:0,name:0,book:[]})
> db.persons.update({name:0},{$addToSet:{book:"abcd"}})
> db.persons.find()
{ "_id" : 0, "book" : [ "abcd" ], "name" : 0 }
> db.persons.update({name:0},{$addToSet:{book:"abcd"}})
> db.persons.find()
{ "_id" : 0, "book" : [ "abcd" ], "name" : 0 }


$pop 删除第一个或者最后一个(-1为第一个,1为最后一个)
> db.persons.update({name:0},{$pop:{book:-1}})


$pull 删除指定的一个
> db.persons.update({name:0},{$pull:{book:"01"}})




$pull 删除多个
> db.persons.update({name:0},{$pullAll:{book:["01","02"]}})


$ 数组定位器,如果数组有多个数值我们只想对其中一部分进行操作我们就要用到定位器($)(??)


修改器是放在最外面的,查询器是放在内层的


$addToSet与$each结合完成批量数组更新
有的话就不添加了
> db.persons.find()
{ "_id" : 0, "book" : [ "js" ], "name" : 0 }
> db.persons.update({_id:0},{$addToSet:{book:{$each:["js","db"]}}})
> db.persons.find()
{ "_id" : 0, "book" : [ "js", "db" ], "name" : 0 }


当document被创建的时候mongoDB为其分配内存和预留内存,当修改操作不超过预留内存的时候速度非常快,反而超过了就要分配新的内存则会消耗时间

 runCommand可以执行mongoDB中的特殊函数
findAndModify就是特殊函数之一他的用于是返回update或remove后的文档
> db.persons.find()
{ "_id" : 0, "book" : [ "js", "db" ], "name" : 0 }
> ps = db.runCommand({
... "findAndModify":"persons",
... "query":{name:0},
... "update":{$set:{age:100}},
... new:true})
{
        "lastErrorObject" : {
                "updatedExisting" : true,
                "n" : 1,
                "connectionId" : 1,
                "err" : null,
                "ok" : 1
        },
        "value" : {
                "_id" : 0,
                "age" : 100,
                "book" : [
                        "js",
                        "db"
                ],
                "name" : 0
        },
        "ok" : 1
}
> ps.value
{ "_id" : 0, "age" : 100, "book" : [ "js", "db" ], "name" : 0 }


mongodb在java中怎做更改操作

java 操作mongodb插入、读取、修改以及删除基础

本文主要讲述如何使用Java操作MongoDB以及了解MongoDB如何进行日常的数据库操作。文章内容如下:第一步:安装MongoDB无需太多的繁杂步骤,你只要在MongoDB官方网站查看安装说明,根据自己的操作系统进行选择适应的版本即可。第二步:启动MongoDB服务器这一步也很简单。运行mongod.exe文件里的bin文件夹(我使用的是Windows OS系统),并启动MongoDB服务器。在默认的情况下服务器将启动端口27017,你需要在安装过程中创建将数据存储在/data/db目录里。第三步:启动MongoDB shell指令你可以通过运行mongo.exe文件来启动MongoBD shell。第四步:利用MongoDB创建数据库利用MongoDB在MongoDB shell中输入以下内容建立一个名为“company”的数据库。use company 记住,除非你在MangoDB里保存了一些东西,否则它不会自动为你保存。使用下面的命令帮你查看可用的数据库,它会显示“company”尚未被创建。show dbs; 第五步:在MongoDB中保存数据使用下面的命令来保存employee 数据代表一个collection,将其命名为employees。employee = {name : "A", no : 1} db.employees.save(employee) 通过使用下面的命令来查看collection里的数据。db.users.find(); 如何使用Java操作MongoDB?下面是是一段简单的Java代码,你可以在这里获得mongo-java驱动。很简单,只需要使用下面的代码,重复上面的操作即可。package com.eviac.blog.mongo; import java.net.UnknownHostException; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.Mongo; import com.mongodb.MongoException; public class MongoDBClient { public static void main(String[] args) { try { Mongo mongo = new Mongo("localhost", 27017); DB db = mongo.getDB("company"); DBCollection collection = db.getCollection("employees"); BasicDBObject employee = new BasicDBObject(); employee.put("name", "Hannah"); employee.put("no", 2); collection.insert(employee); BasicDBObject searchEmployee = new BasicDBObject(); searchEmployee.put("no&quot......余下全文>>
 

谁有学习MongoDB视频教程

给你推荐一份资料,叫《深入浅出MongoDB应用实战开发(基础、开发指南、系统管理、集群及系统架构)》有22课时,侧重于讲解MongoDB的常用特性及高级特性,从实际开发的角度出发对MongoDB进行全方位深入剖析。具体内容如下:可以联系我 1511065175

MongoDB基础:

第一讲:nosql与MongoDB(nosql兴起的背景、各种nosql数据库介绍,MongoDB的特点)
第二节:MongoDB安装配置 (MongoDB安装使用,基本系统管理的技巧,web控制台使用)
第三讲:MongoDB shell详解 (介绍MongoDB shell使用及命令,备份恢复、数据导入导出)
第四讲:MongoDB文档、集合、数据库的概念(介绍文档、集合、数据库等基本概念,库文件存储方式,命令规则)
第五讲:Mongodb 数据类型介绍 (详细介绍MongoDB支持数据类型)
MongoDB开发指南:
第六讲:MongoDB增、删、改文档(讲解MongoDB中增加、删除、修改文档的命令,插入原理、批量修改、修改器使用)
第七讲:MongoDB查询语法一 (详细讲解MongoDB强大的查询功能,$in、$or、$ne、$lt、$gt等操作符组合查询)
第八讲:MongoDB查询语法二(详细讲解MongoDB强大的查询功能,正则表达式查询、数组查询、内嵌文档查询)
第九讲:MongoDB查询语法三(详细讲解MongoDB where查询,游标操作、分页查询及代码示例、游标内幕)
第十讲:MongoDB索引(详细讲解MongoDB的索引原理、管理、索引查询分析工具、强制索引使用等)
第十一讲:MongoDB聚合统计(讲解MongoDB聚合统计功能)
第十二讲:MongoDB高级指南-命令工作原理(介绍数据库命令的工作原理)
第十三讲:MongoDB高级指南-固定集合、GridFS(介绍固定集合、GridFS原理及应用)
第十四讲:MongoDB高级指南-服务端脚本(介绍服务端脚本dbeval、javascript存储)
MongoDB系统管理:
第十五讲:MongoDB系统管理高级技巧1(系统监控)
第十六讲:MongoDB系统管理高级技巧2(数据库安全、备份恢复、数据修复)
MongoDB集群及系统架构:
第十七讲:MongoDB复制功能(详细讲解MongoDB主从复制建立、管理、维护)
第十八讲:MongoDB副本集功能(详细讲解MongoDB副本集建立、管理、维护)
第十九讲:MongoDB分片功能(详细讲解MongoDB分片建立、管理、维护)
第二十讲:MongoDB内幕( 深入剖析MongoDB系统架构、数据文件结构原理)
MongoDB应用案例:
第二十一讲:基于MongoDB通用帐号管理系统开发1
第二十二讲:基于MongoDB通用帐号管理系统开发2
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/3128.html NewsArticle mongoDB学习(二)之常用的修改操作,mongodb学习修改 插入文档(插入数据库) db.person.insert({_id:0001,nameyuexin}) 清除数据 db.person.drop() 批量插入文档 shell中不支持批量插入 完成批量插入使...
评论暂时关闭