MongoDB: CURD操作

>> 创建:·db.foo.insert({"bar":"baz"}) //如果文档中没有"_id"键会自动增加一个·db.foo.batchInsert([{"_id":0},{"_id":2}])   //只适用将多个文档插入到一个集合,不能单次请求中多个文档批量插入多个集合中  // 当前Mongo能接收最大的消息长度是48M  # 插入校验·每个文档必须小于16M (Object.bsonsize(doc)查看bson大小)  >> 删除:·db.foo.remove()//删除所有集合中的文档,但是不删除集合本身·db.foo.remove({"opt":true})·db.foo.drop()//删除整个集合(慎用)

>> 更新:# 基本更新:·db.foo.update() //更新的过程中必须保证同一个文档键不能重复

# 修改器:·db.foo.update({"game":"game"},{"$inc":{"score":1000}}) //$inc 是对某个字段的值进行增加和减少操作,适用于数值类型·db.foo.update({"_id":1},{"$set":{"fav":"fav"}}) //修改非数值类型的字段的值·db.foo.update({"_id":1},{"$unset":{"fav":1}}) //删除这个键+ 数组修改器:

+ 添加元素:·db.foo.update({"title":"blog"},{"$push":{"comments":"comments"}}) //在文档中添加一个元素·db.foo.update({"title":"blog"},{"$push":{"comments":{"$each":[1,3,5]}})//添加多个值·db.foo.update({"title":"blog"},{"$push":{"comments":{"$each":[1,3,5],"$slice":-10}})  //设置添加元素的数量,"$slice"值为负整数·db.foo.update({"title":"blog"},{"$push":{"comments":{"$each":[1,3,5],"$slice":-10,"$sort":{"rating":-1}}}) //"$slice","$sort"与"$push"配合使用,必须使用"$each"

# 数组操作:·db.papers.update({{"authors":{"$ne":"richie"}},{"$push":{"authors":richie}}}) //$ne先查询数组中是否存在这个元素·db.users.update({"_id":1},{"$addToSet":{"emails":"[email protected]"}}) //避免插入重复的值·db.users.update({"_id":1},{"$addToSet":{"emails":{"$each":["[email protected]","[email protected]"]}}}) 

·db.blog.update({"post":post_id},{"$inc":{"comments.0.votes":1}})//基于数组的下标位置修改·db.blog.update({"commetns.author":"john"},{"$set":{"comments.$.author":"jim"}})

# 删除元素:·db.lists.update{{},{"$pull":{"todo":"laundry"}}} //指定条件删除某个元素,会将所有匹配的值删除·{"$pop":{"key":1}}//从数组末尾删除·{"$pop":{"key":-1}} //从数组头部删除

>> 特殊更新:·db.blog.update({"url":"/blog"},{"$inc":{"pageviews":1},true})//true如果没有找到更新条件的文档则创建·db.users.update({},{"$setOnInsert":{"createdAt":new Date()},true}) //创建时赋值,之后所有的更新操作都不会改变

# save(doc)函数:如果文档存在就更新文档,如果不存在就创建

>> 更新多个文档:??·findAndModify

=> 写入安全:

>> 查询# 基本查询:·db.users.find({},{"username":1,"email":1,"_id": 0}) //指定某个字段显示

# 带条件的查询: 内层文档:"$lt"、"lte"、"$gt"、"gte" 对应<,<= ,> ,>= 外层文档:"$and","$or","$nor"·db.users.find({"registered":{"$lt":start}})·db.users.find({"username":{"$ne":"joe"}}) 查询所有名字不为joe的用户

·db.raffle.find({"ticket":{"$in":[1,2,3]}}) //一个键与多个值匹配·db.raffle.find({"$or":[{"ticket":{"$in":[1,3,5]}},{"winner":true}]}) //or查询

·db.users.find({"id_num":{"$mod":[5,1]}}) ·db.users.find({"id_num":{"$not":{"$mod":[5,1]}}})

=> 一个键可以任意组合多个条件,但是一个键不能对应多个更新修改器

# 特定类型查询:·db.c.find({"z":{"$in":[null],"$exists":true}}) //null查询·db.users.find({"name":/joe/i})//正则表达式查询

# 数组查询:·db.food.find({"friut":{$all:["apple","banana"]}}) ·精确匹配对于数组依赖顺序
时间: 2024-08-28 10:04:03

MongoDB: CURD操作的相关文章

windows下mongodb基础玩法系列二CURD操作(创建、更新、读取和删除)

windows下mongodb基础玩法系列 windows下mongodb基础玩法系列一介绍与安装 windows下mongodb基础玩法系列二CURD操作(创建.更新.读取和删除) 简单说几句 在mongodb中3元素:db(数据库).collection(集合).document(文档) 其中collection类似于数据库中的表,document类似于行,这样一来我们就将内容对比起来记忆学习了. 数据格式 MongoDB documents是BSON格式(一种类json的一种二进制形式的存

mongodb 学习笔记 02 -- CURD操作

mongodb 学习笔记 02 – CURD操作 CURD代表创建(Create).更新(Update).读取(Read)和删除(Delete)操作 创建库 直接 use 库名 然后创建collection 就可以创建库 创建collecion db.createCollection("collectionName") 隐式创建collection db.collectionName.insert({xxxxxx}) 删除collection db.collectionName.dro

MongoDB安装、CURD操作、使用场景分析总结(1)

NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL".非关系型的数据存储 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. MongoDB有数据库.集合.文档三个基本概念分别相当于关系数据库中的数据库.表.行. 一.MongoDB安装 MongoDB官网下载地址:htt

MongoDB学习笔记~自己封装的Curd操作(按需更新的先决条件)

回到目录 我们上一讲中介绍了大叔封装的Mongo仓储,其中介绍了几个不错的curd操作,而对于按需更新内部子对象,它是有条件的,即你的子对象不能为null,也就是说,我们在建立主对象时,应该为子对象赋一下初值,即new一下它,呵呵. 正确的mongo集合 对于赋过初值的子对象,在按需要更新时,有以下两种要注意一下 1 子对象的_id,如果已经存在,就更新它的值 2 子对象的_id,如果不存在,或者没有显示为_id赋值,则添加一条新的记录,即_id从新生成 而对于实体更新不存在这个问题,实体里的值

MongoDB常用操作

1.MongoDB常用操作 1.1数据库的操作命令 1.创建数据库,使用命令 use 数据库名称 ,如 use sxf. *注意: 1.use 命令后跟的数据库名,如果存在就进入此数据库,如果不存在就创建,所以这种创建方式又叫隐式创建 2.使用命令use sxf创建数据库后,并没有真正生成对应的数据文件,如果此时退出,此数据库将被删除,只有在此数据库中创建集合后,才会真正生成数据文件 2. 删除当前数据库,使用命令 db.dropDatabase() 3.查看所有数据库,使用命令 show db

java 对mongodb的操作

java 对mongodb的操作 1.1连单台mongodb Mongo mg = newMongo();//默认连本机127.0.0.1  端口为27017 Mongo mg = newMongo(ip);//可以指定ip 端口默认为27017 Mongo mg = newMongo(ip,port);//也可以指定ip及端口号 1.2连双台mongodb //ip为主机ip地址,port为端口号,dataBaseName相当于数据库名 DBAddress left = new DBAddre

Mongodb聚合操作之读书笔记

Mongodb聚合操作 读书笔记 mongodb,两种计算聚合pipeline和mapreduce pipeline查询速度快于mapreduce,但MapReduce能够在多台Server上并行执行复杂的聚合逻辑. mongodb不允许Pipeline的单个聚合操作占用过多的系统内存,如果一个聚合操作消耗20%以上的内存,那么mongodb直接停止操作,并向客户端输出错误消息. Pipeline方式使用db.collection.aggregate()函数进行聚合运算,运算速度较快,操作简单.

.NET下对MongoDB进行操作(二)

这次说下关于利用C#driver,对mongoDB进行简单的查询. 我们可以利用Query类中的静态方法来创建一系列query,达到查询的目的. Query在using MongoDB.Driver.Builders这一名称空间中. 1. 单一条件查询,可以参考如下代码: var query = Query.EQ("ColName", "Value"); foreach (BsonDocument doc in collection.Find(query)) { D

php对xml文件进行CURD操作

XML是一种数据存储.交换.表达的标准: - 存储:优势在于半结构化,可以自定义schema,相比关系型二维表,不用遵循第一范式(可以有嵌套关系): - 交换:可以通过schema实现异构数据集成: - 表达:本身就可以作为阅读文档,当然还可以使用XSLT之类的进行解析和再显示. 缺点是schema验证复杂,相比后来的json等格式,相对冗余. 下面的是利用php对xml文件进行CURD操作: xml文件的格式为: 1 <?xml version="1.0" encoding=&