MongDB增删改查

增加

增加一条:db.th.insertOne({}) // 返回 _id
增加多条:db.th.insertMany([{},{},{}]) // 返回 _ids

针对Array增加操作:
db.stu.updateOne({name:"wl"},{$push:{"hobby":"小姐姐"}}) #增加一个
db.stu.updateOne({name:"wl"},{$pushAll:{"hobby":[1,2,3]}}) #增加多个

查询

db.th.find({})  #查询所有符合条件的数据
db.th.findOne({})  #查询符合条件的第一条数据 

db.th.findOne({name:2})  #查询name字段 == 2 的数据
db.stu.find({name:"2",age:99})  #并列条件 name与age 同时满足的

数学比较符 $lt $lte $gt $gte $eq $ne
db.user.find({age:{$gt: 18}})

$all : 子集查询
db.stu.find({l:{$all:[8,6,4,2]}})

Object 查询 :
db.stu.find({"class.name":"python"})

并列查询
db.Collection.find({Field:1,Field2:2}) 

或查询
db.Collection.find({$or:[{Field:1},{Field2:3}]})
db.stu.find({$or:[{age:99},{ages:666}]}) # 在不同字段查询或条件时使用$or
db.Collection.find({Field:{$in:[1,2,3,4,5]}})
db.stu.find({age:{$in:[9,99,999,9999,9999]}}) #在相同字段情况下查询或条件时使用 $in

修改

db.stu.updateOne({age:99}, {$set:{"name":"JW8"}}) #更新第一条符合条件的数据:

修改器:$set 强制将某字段的value修改
db.stu.updateMany({age:99}, {$set:{"name":"JW8"}})  #更新所有符合条件的数据 

$set : 强制修改字段值
$inc : 引用增加 db.stu.updateMany({}, {$inc: {"age":10}}) #所有的age增加10,可以写负数为减少
$unset: 强制删除某个Field db.stu.updateMany({}, {$unset: {"age":1}}) # 删除所有的age 1为True

针对Array:更新元素
db.stu.updateOne({name:"wl","hobby":2},{$set:{"hobby.$":"1"}})
db.stu.updateOne({name:"JW8","class.name":"python"},{$inc:{"class.$.score":10}})

db.stu.updateOne({name:"wl"},{$unset:{"class.classtype":"bcyy"}})
db.stu.updateOne({name:"wl"},{$set:{"class.classtype":"bcyy"}})

删除

db.th.deleteOne({name:1}) # 删除第一条符合条件的数据
db.th.deleteMany({name:1})  #  删除符合条件的所有数据
db.th.deleteMany({}) # 删除所有数据 

 针对Array删除操作:
db.stu.updateOne({name:"wl"},{$pull:{"hobby":"DSB"}}) #删除一个
db.stu.updateOne({name:"wl"},{$pullAll:{"hobby":[2,3]}}) #循环删除

$pop() 是删除列表中的第一个 (-1) 或者最后一个 (1)
db.stu.updateOne({name:"wl"},{$pop:{"hobby":1}})删除最后一个
db.stu.updateOne({name:"wl"},{$pop:{"hobby":-1}})删除第一个元素

$关键字

用来存储符合条件的元素下标索引,只保存第一个符合条件的
 l = [1,2,3,1,2,2,2] 哪个元素 == 2 它的下标是多少 $就等于这个下标的数字
 l[1] = "wl"
 l[$] = "wl"
db.stu.updateOne({name:"wl","hobby":2},{$set:{"hobby.$":"qwe"}}) #修改hobby第一个为2的元素修改为qwe,$为下标

分页

limit skip sort
limit 选取数据量
skip 跳过数据量
sort 根据字段进行排序
db.stu.find().sort({ name:1 }).skip(6).limit(3)

原文地址:https://www.cnblogs.com/wanglan/p/10604790.html

时间: 2024-11-03 09:11:50

MongDB增删改查的相关文章

mongoDB (mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)

MongoDB - 简介 官网:https://www.mongodb.com/ MongoDB 是一个基于分布式文件存储的数据库,由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. MongoDB - 安装及运行 下载 07/05/2017 Current Stable Release (3.4.6) https://www.mongodb.com/dow

LINQ之增删改查

前言: LINQ,语言集成查询(LanguageIntegrated Query)是一组用于c#和Visual Basic语言的扩展.它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据. 从技术角度而言,LINQ定义了大约40个查询操作符,如select.from.in.where以及order by(C#中).使用这些操作符可以编写查询语句.不过,这些查询还可以基于很多类型的数据,每个数据类型都需要一个单独的LINQ类型. 开始学习LinQ总是抱着一种感觉自己很虚

Java操作MongoDB增删改查完美Demo

--因为实习工作需要,在学MongoDB,参考了公司的一个MongDB服务类,写了一个整合的Demo,涉及到的大部分的增删改查操作,而且还算规范,给大家参考!源代码:(完整项目文件下载链接:点击打开链接)http://download.csdn.net/detail/zhangliangzi/9555872 使用说明: 一.MongoDB数据库参数配置 1.推荐使用mongodb.cfg.properties配置,则在构造MongoDBService对象的时候只需调用无参构造方法即可自动完成配置

Python 模拟SQL对文件进行增删改查

1 #!/usr/bin/env python 2 # _*_ coding:UTF-8 _*_ 3 # __auth__: Dalhhin 4 # Python 3.5.2,Pycharm 2016.3.2 5 # 2017/05/15 6 7 import sys,os 8 9 def where(dbfile,where_list): #条件是一个list 10 11 def and_or_where(sub_where_list): 12 '''获取and或同时含有and.or关键字的条

【黑马Android】(04)数据库的创建和sql语句增删改查/LinearLayout展示列表数据/ListView的使用和BaseAdater/内容提供者创建

数据库的创建和sql语句增删改查 1. 加载驱动. 2. 连接数据库. 3. 操作数据库. 创建表: create table person( _id integer primary key, name varchar(20), age integer ); 添加: insert into person(name, age) values('lisi', 19); 删除: delete from person where _id = 1; 修改: update person set name =

ssm框架搭建+easyui增删改查实现

闲来无事,看了看别人的博客文档也跟着敲了敲,特地记录下来,方便以后学习: spring版本:4.0.6 mybatis版本:3.2.5 所有jar包打包下载:http://pan.baidu.com/s/1qLEaU 1.项目目录结构 其中,controller包下存放控制层文件,dao下存放各个model类相关的数据库操作接口,entity下放置各种model类,mappers下放置各个dao对应的映射文件,service服务层就不说了,放置各种service接口,impl是其具体实现类. 2

【Android】Sqlite数据库增删改查

Android系统内置一个Sqlite数据库,如果app需要使用Sqlite数据库数据库存储数据,Android会为此app生成一个.db文件.这个数据库在data/data/<package_name>/databases里面,其中<package_name>为该安卓app的工程包名,这个目录必须root后才能看到.在Windows,单机的应用程序,存储数据,基本放到一个文件里面,正如游戏的存档,基本就是把当前的游戏状态存到一个用户很难找到的文件里面.每次存档读档就是一个从这个存

夺命雷公狗---Thinkphp----12之文章的增删改查(图片上传和关联查询)

我们由于表分析的不够完善,所以我们来加多一个tid的字段,到时候主要目的是为了更好的遍历出文章是属于那个分类下的,表如下所示: 那么下一步我们就开始创建一个ArticleController.class.php的控制器,用来管理文章的增删改查操作,所以我们开始第一步来实现文章的添加,我们先来实现他的增加功能: public function add(){ if(IS_POST){ $data['title'] = I('title'); $data['tid'] = I('tid'); $dat

MyBatis增删改查模板

1. 首先,和Spring整合一下 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springfra