MongoliaDB学习(2)增删改查

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

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

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

一: Insert操作

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

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

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

①  单条插入

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

② 批量插入

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

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

二:Find操作

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

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

②:And,OR,In,NotIn

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

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

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

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

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

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

三:Update操作

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

<1> 整体更新

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

<2> 局部更新

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

修改器: $inc 和 $set。

①  $inc修改器

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

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

② $set修改器

啥也不说了,直接上代码

<3> upsert操作

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

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

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

<4> 批量更新

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

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

四: Remove操作

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

版权声明:欢迎转载,希望在你转载的同时,添加原文地址,谢谢配合

时间: 2024-08-11 10:36:18

MongoliaDB学习(2)增删改查的相关文章

Android学习--------实现增删改查数据库操作以及实现类似微信好友对话管理操作

最近的一个实验用到东西挺多,特地总结一下. 要求功能: 1.第一个页面添加歌曲名和歌手,跳到第二个页面列表显示所有记录,使用sqlite数据库 2.对于第二个页面显示的信息可以进行删除和修改操作,并自动刷新 最后我做的效果: 长按列表项弹出单个管理的菜单,像微信好友对话管理一样. 删除时可以直接删除这一条并在列表中直接显示,更新时弹出对话框更新内容提交后在列表中重新显示. 做此例遇到的困难: 1.菜单获取上下文 2.获取对话框中的内容 3.对话框按钮添加监听事件-----注意包不要导错:impo

JDBC学习笔记——增删改查

1.数据库准备  要用JDBC操作数据库,第一步当然是建立数据表: ? 1 2 3 4 5 6 CREATE TABLE `user` (   `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,   `name` varchar(45) DEFAULT NULL,   `birthday` date DEFAULT NULL,   `money` double DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET

zookeeper curator学习(增删改查)(1)

主要参考的是curator,github地址:https://github.com/apache/curator/tree/master/curator-examples. zookeeper版本为zookeeper-3.4.9(需要查找合适的curator版本) 源码地址:https://gitee.com/zhangjunqing/spring-boot/tree/master/zookeeper (1)pom文件如下 <project xmlns="http://maven.apac

Hibernate学习-------数据库增删改查操作(部分)

(1)增加和删除 <span style="white-space:pre"> </span>@Test public void test() { EStudent student=new EStudent(); student.setName("张三"); student.setSex("男"); Session session=sf.openSession(); session.beginTransaction();

二、Django学习之增删改查

增加数据 第一种方式 def index(request): #创建记录方式1 #实例化要添加的记录(对象) student_obj = models.Student( name='dazhuang', age=23, ) #自动刷新并存储到数据库 student_obj.save() return render(request,'index.html') 第二种方式 常用方法 def index(request): #创建记录方式2 # new_obj为返回值,返回这个类的对象 (model对

ThinkPHP学习之增删改查

一般来说项目都会涉及到与数据库打交道.也许是SqlServer,也许是MySql怎么那么多数据库啊,多点到不怕关键你们能不能统一语法啥的啊,要了亲命了. $Form = D('Form'); $data['title'] = 'ThinkPHP'; $data['content'] = '表单内容'; $Form->add($data); 你看见了吧,我不管你是啥数据库,我就都这样写就行.

Linux 学习 - 用户增删改查 相关操作

useradd  增加/创建用户 userdel -r  删除用户 id shizhengwen  查看用户 (shizhengwen是用户名) usermod -d 修改的是 用户的配置文件 中的 家目录 ,修改之后 还需要复制 原来 家目录中的配置文件,否则 无法正常登录用户(相当于他重新创建了一个新的家目录文件,文件内是空的) usermod -G group1 user1 将用户user1,加入到group1 这个组内, 注意,这里新加入的组 是 副组 ,是覆盖的形式, 意思是说,如果再

学习Mysql第二天--增删改查

跬步何以至千里 今天主要学习增删改查,坚持每天学习一点 增删改查主要还是记住命令以及语法. 增删改查命令中都需要有表名 增 insert into 表名 value(); 删 delete from 表明 where from 参数 = “”; 改 update 表名 set 参数 = "" where owner = ""; 查 select * from 表名; 查看数据表的结构 (参数 类型等) desc 表名; mysql数据类型(引用菜鸟教程) MySQL

[MongoDB]增删改查

摘要 上篇文章学习了mongodb在windows上的安装,以及如何开启mongodb,最后列举了简单的增删改查操作.本篇将继续深入学习一下增删改查. 相关文章 [MongoDB]入门操作 CRUD 通过上篇文章,我们知道collection中存储的每个对象是一个document对象.document是以键值对存在的json形式的对象.我们都知道json的value中存储的数据,可能是单个对象,字符串,数组,也可能是嵌套的json等类型的数据. insert 插入操作又分为:单个插入和批量插入.

EF CodeFirst增删改查之‘CRUD’

最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精    本篇旨在学习EF增删改查四大操作 上一节讲述了EF CodeFirst 创建数据库,本节继续引用上一节的相关类学习EF的CRUD操作 废话少说,直接上要点,上一节中的模型类我作了如下修改: using System; using System.Collections.Generic; using System.ComponentModel.Data