8天学通MongoDB——第二天 细说增删查改 - 一线码农 - 博客园

本文主要是介绍8天学通MongoDB——第二天 细说增删查改 - 一线码农 - 博客园,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

      看过上一篇,相信大家都会知道如何开启mongodb了,这篇就细说下其中的增删查改,首先当我们用上一篇同样的方式打开mongodb,突然

傻眼了,擦,竟然开启不了,仔细观察“划线区域“的信息,发现db文件夹下有一个类似的”lock file”阻止了mongodb的开启,接下来我们要做的就

是干掉它,之后,开启成功,关于mongodb的管理方式将在后续文章分享。

8天学通MongoDB——第二天 细说增删查改 - 一线码农 - 博客园 - 一门 - yyimen的博客

一: Insert操作

     上一篇也说过,文档是采用“K-V”格式存储的,如果大家对JSON比较熟悉的话,我相信学mongodb是手到擒来,我们知道JSON里面Value

可能是“字符串”,可能是“数组”,又有可能是内嵌的一个JSON对象,相同的方式也适合于BSON。

      常见的插入操作也就两种形式存在:“单条插入”和“批量插入”。

   

    ①  单条插入

          先前也说了,mongo命令打开的是一个javascript shell。所以js的语法在这里面都行得通,看起来是不是很牛X。      

    8天学通MongoDB——第二天 细说增删查改 - 一线码农 - 博客园 - 一门 - yyimen的博客

   ② 批量插入

      这玩意跟“单条插入”的差异相信大家应该知道,由于mongodb中没有提供给shell的“批量插入方法”,没关系,各个语言的driver都打通

了跟mongodb内部的批量插入方法,因为该方法是不可或缺的,如果大家非要模拟下批量插入的话,可以自己写了for循环,里面就是insert。

二:Find操作

     日常开发中,我们玩查询,玩的最多的也就是二类:

     ①: >, >=, <, <=, !=, =。

     ②:And,OR,In,NotIn

这些操作在mongodb里面都封装好了,下面就一一介绍:

    <1>"$gt", "$gte", "$lt", "$lte", "$ne", "没有特殊关键字",这些跟上面是一一对应的,举几个例子。

8天学通MongoDB——第二天 细说增删查改 - 一线码农 - 博客园 - 一门 - yyimen的博客

   

<2> "无关键字“, "$or", "$in","$nin" 同样我也是举几个例子

8天学通MongoDB——第二天 细说增删查改 - 一线码农 - 博客园 - 一门 - yyimen的博客

<3> 在mongodb中还有一个特殊的匹配,那就是“正则表达式”,这玩意威力很强的。

<4> 有时查询很复杂,很蛋疼,不过没关系,mongodb给我们祭出了大招,它就是$where,为什么这么说,是因为$where中的value

  就是我们非常熟悉,非常热爱的js来助我们一马平川。

三:Update操作

      更新操作无非也就两种,整体更新和局部更新,使用场合相信大家也清楚。

    <1> 整体更新

         不知道大家可还记得,我在上一篇使用update的时候,其实那种update是属于整体更新。

8天学通MongoDB——第二天 细说增删查改 - 一线码农 - 博客园 - 一门 - yyimen的博客

   

  <2> 局部更新

        有时候我们仅仅需要更新一个字段,而不是整体更新,那么我们该如何做呢?easy的问题,mongodb中已经给我们提供了两个

   修改器: $inc 和 $set。

   ①  $inc修改器

       $inc也就是increase的缩写,学过sql server 的同学应该很熟悉,比如我们做一个在线用户状态记录,每次修改会在原有的基础上

    自增$inc指定的值,如果“文档”中没有此key,则会创建key,下面的例子一看就懂。

8天学通MongoDB——第二天 细说增删查改 - 一线码农 - 博客园 - 一门 - yyimen的博客

 ② $set修改器

      啥也不说了,直接上代码 

8天学通MongoDB——第二天 细说增删查改 - 一线码农 - 博客园 - 一门 - yyimen的博客

 <3> upsert操作

     这个可是mongodb创造出来的“词”,大家还记得update方法的第一次参数是“查询条件”吗?,那么这个upsert操作就是说:如果我

没有查到,我就在数据库里面新增一条,其实这样也有好处,就是避免了我在数据库里面判断是update还是add操作,使用起来很简单

将update的第三个参数设为true即可。

8天学通MongoDB——第二天 细说增删查改 - 一线码农 - 博客园 - 一门 - yyimen的博客

 <4> 批量更新

     在mongodb中如果匹配多条,默认的情况下只更新第一条,那么如果我们有需求必须批量更新,那么在mongodb中实现也是很简单

的,在update的第四个参数中设为true即可。例子就不举了。

四: Remove操作

      这个操作在上一篇简单的说过,这里就不赘述了。

posted @ 2012-02-19 02:06 一线码农 阅读(14314) 评论(17) 编辑 收藏

评论列表
#4楼[楼主] 2012-02-19 13:35 一线码农
#5楼[楼主] 2012-02-19 13:36 一线码农
#6楼[楼主] 2012-02-19 13:38 一线码农
#8楼[楼主] 2012-02-20 10:29 一线码农
#11楼[楼主] 2012-02-20 18:37 一线码农
#12楼[楼主] 2012-02-20 18:38 一线码农
我想请教你一个问题,我现在在做一个mongoDB的查询分析器,我发现这个EVAL方法,不是想象中的使用,你能给我提供一些帮助吗?Eval里面要怎么写?
?
public string GetData(string currentDb, string text)
using (var mongo = new Mongo(_connectionString))
mongo.Connect();
var db = mongo.GetDatabase(currentDb);
var doc = db.Eval(text);
//var sdsd = ((MongoDatabase)db).SendCommand(text);
mongo.Disconnect();
return doc.Values.ToString();
?
var persons = new Array()
persons[0] = { name : 'zhangsan', age : 22 }
persons[1] = { name : 'lisi', age : 33 }
db.person.insert(persons)
1. Re:算法洗脑系列(8篇)——第五篇 分治思想 n==6时好像有问题吧!!! --无名小红 2. Re:wcf系列5天速成——第一天 binding的使用(1) --cc_jony 3. Re:wcf系列5天速成——第一天 binding的使用(1) 写的很明白 有点基础的一看就懂 --cc_jony 4. Re:算法系列15天速成——第二天 七大经典排序【中】 --flyher 5. Re:团队沟通利器之UML——活动图 一开始没发现,都有的,先在解决方案里建一个”建模项目“项目,再在项目里添加新建项 --tiigger



引文来源   8天学通MongoDB——第二天 细说增删查改 - 一线码农 - 博客园

这篇关于8天学通MongoDB——第二天 细说增删查改 - 一线码农 - 博客园的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/707799

相关文章

Go Mongox轻松实现MongoDB的时间字段自动填充

《GoMongox轻松实现MongoDB的时间字段自动填充》这篇文章主要为大家详细介绍了Go语言如何使用mongox库,在插入和更新数据时自动填充时间字段,从而提升开发效率并减少重复代码,需要的可以... 目录前言时间字段填充规则Mongox 的安装使用 Mongox 进行插入操作使用 Mongox 进行更

在Mysql环境下对数据进行增删改查的操作方法

《在Mysql环境下对数据进行增删改查的操作方法》本文介绍了在MySQL环境下对数据进行增删改查的基本操作,包括插入数据、修改数据、删除数据、数据查询(基本查询、连接查询、聚合函数查询、子查询)等,并... 目录一、插入数据:二、修改数据:三、删除数据:1、delete from 表名;2、truncate

使用Python实现操作mongodb详解

《使用Python实现操作mongodb详解》这篇文章主要为大家详细介绍了使用Python实现操作mongodb的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、示例二、常用指令三、遇到的问题一、示例from pymongo import MongoClientf

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

[MySQL表的增删改查-进阶]

🌈个人主页:努力学编程’ ⛅个人推荐: c语言从初阶到进阶 JavaEE详解 数据结构 ⚡学好数据结构,刷题刻不容缓:点击一起刷题 🌙心灵鸡汤:总有人要赢,为什么不能是我呢 💻💻💻数据库约束 🔭🔭🔭约束类型 not null: 指示某列不能存储 NULL 值unique: 保证某列的每行必须有唯一的值default: 规定没有给列赋值时的默认值.primary key:

Java基础回顾系列-第二天-面向对象编程

面向对象编程 Java类核心开发结构面向对象封装继承多态 抽象类abstract接口interface抽象类与接口的区别深入分析类与对象内存分析 继承extends重写(Override)与重载(Overload)重写(Override)重载(Overload)重写与重载之间的区别总结 this关键字static关键字static变量static方法static代码块 代码块String类特

08 增删查功能

划重点: lable 标签keyup:键盘事件标签内添加样式:style使用事件修饰符:preventforEach :遍历 数组indexOf: 可以返回要查询的某个字符串值在整个字符串中首次出现的位置下标findIndex:返回传入一个测试条件(函数)符合条件数组的首个元素的位置splice:向/从数组中添加/删除项目,然后返回被删除后的新的项目数组 黑椒蟹 一对: <!DOCTYPE

生产mongodb 分片与集群 方案

链接:http://my.oschina.net/pwd/blog/411439#navbar-header 注:主要是有一键安装的脚本可以借鉴

mongodb基本命令和Java操作API示例

1.Mongo3.2 java API示例:http://www.cnblogs.com/zhangchaoyang/articles/5146508.html 2.MongoDB基本命:http://www.cnblogs.com/xusir/archive/2012/12/24/2830957.html 3.java MongoDB查询(一)简单查询: http://www.cnblogs

使用jetty和mongodb做个简易文件系统

使用jetty和mongodb做个简易文件系统 - ciaos 时间 2014-03-09 21:21:00   博客园-所有随笔区 原文   http://www.cnblogs.com/ciaos/p/3590662.html 主题  MongoDB  Jetty  文件系统 依赖库: 1,jetty(提供http方式接口) 2,mongodb的java驱动(访问mo