1,insert
创建document(文档) 并添加记录
db.collection.insert({"name":"张三"})
插入指定document的数据
db.collection.insert({"name":"李四"})
2,update 更新指定document的数据符合条件的数据
语法: db.collection.update(query,update_expression,bool_upsert,bool_multi);
bool_upsert:1表示query不存在时候就插入,0表示query不存在时不做任何操作。
bool_multi:1表示更新所有符合条件的(等价于{multi:true}),0表示只更新一条符合条件的记录,默认值是0(只修改一条符合条件的记录)。
db.collection.update({"name":"李四"},{"name":"李四五"}) 更新一条符合条件的记录删除指定文档中的指定数据,且只保留name属性,其它属性将会被全部删除。强硬式文档更新。
$set 设置属性(修改指定列的值)
db.collection.update({"name":"李四"},{$set:{"name":"李四五"}}) 更新一条符合条件的记录(当表中没有“name”为“李四”的用户的时候将没有影响数据库)
db.collection.update({"name":"李四"},{$set:{"name":"李四五六"}},{multi:true}) 更新所有符合条件的记录
db.collection.update({"name":"李四"},{$set:{"name":"李四五"}},{upsert:true}) 如果有“name”为“李四”的用户将更新一条记录,如果没有符合条件的更新则插入一条记录。
$setOnInsert upsert 为true 的更新操作导致插入文档时,设置指定字段的值,如果更新不导致插入时$ setOnInsert什么也不做。
db.collection.update({'name':'黎明'},{$set:{"name":'四大天王黎明'},$setOnInsert:{'loc':'香港'}},{upsert:true})
$unset删除属性(删除指定列)
db.collection.update({"name":"李四"},{$unset:{"age":1},0,1}) 删除所有符合条件记录的age属性。
$inc 修改器 (类似编程语言中的+=)
语法:{ $inc: { <field1>: <amount1>, <field2>: <amount2>, ... } }
db.collection.update({"name" : "李四"},{$inc:{age:10}}) 将李四的年龄增加10岁
db.collection.update({"name" : "李四"},{$inc:{age:-10}}) 将李四的年龄减少10岁
$rename 更新字段名
db.user.update({"name" : "李四"},{$rename:{age:'年龄'}}) 将李四的“age”属性名称改为“年龄”
3,remove
删除指定文档中的指定数据
语法:db.collection.remove(查询表达式,选项);
选项 justOne:true/false 是否只删一行,默认是false
eg:
db.collection.remove({"age":20});//删除所有年龄为20的 等价于db.collection.remove({"age":20},false);
db.collection.remove({"age":20},1); 或 db.collection.remove({"age":20},true); //只删除一个年龄为20的
db.collection.remove({})
注意:在3.2之后的版本删除语法调整为deleteOne 或者 deleteMany了
4,find 查询指定document的数据
语法: db.collection.find(查询表达式,查询的列)
db.collection.find({查询条件}) 查询出所有符合条件的数据
db.collection.findOne({查询条件}) 查询一条符合条件的数据
db.collection.find({"name":{$regex: '西', $options:'i'}}) 模糊查询name中包含西的所有记录
db.collection.find({"name":{$regex:/西.*/i}}) 模糊查询name中包含西的所有记录
db.collection.find({"name":/西/i}) 模糊查询name中包含西的所有记录
以上三种模糊查询有什么区别呢? 他们各有什么优劣?各自的适用场景是什么?模糊查询不能用索引怎么提高查询效率呢?20160417。
$options:'i' 表示的是大小写敏感,
查询表达式
$elemMatch用法:
{"contents":{$elemMatch:{"fieldId":"project_type","content":"民间文学"}}}
逻辑运算符begin
$and的用法: 逻辑与
语法: { $and: [ { <expression1> }, { <expression2> } , ... , { <expressionN> } ] }
{ "$and" : [{"contents":{$elemMatch:{"fieldId":"project_type","content":"民间文学"}}},{"contents":{$elemMatch:{"fieldId":"batch","content":"2"}}}]}
and 满足[]里面的所有{}条件的
$or的用法: 逻辑或 满足[]里面的其中条件之一的
语法: { $or: [ { <expression1> }, { <expression2> }, ... , { <expressionN> } ] }
{ "$or" : [{"contents":{$elemMatch:{"fieldId":"project_type","content":"民间文学"}}},{"contents":{$elemMatch:{"fieldId":"batch","content":"2"}}}]}
$not的用法:逻辑非
语法: { field: { $not: { <operator-expression> } } }
db.user.find({age:{$not:{$gt:20}}}); 查询不是年龄大于20的记录
注意这里和 age:{$lte:20} 不等价 这里可以查询出没有age属性的值,但是 age:{$lte:20}只能查age属性存在,且小于等于20的记录
$nor的用法:所有条件全部不成立
语法:{ $nor: [ { <expression1> }, { <expression2> }, ... { <expressionN> } ] }
db.user.find({$nor:[{'name':'zhangsan'},{age:{$gt:20}}]}); 查询名字不等于“zhangsan” 并且age不是>20的记录
nor 不满足[]里面的其中任意一个{}条件的
逻辑运算符end
比较运算符begin
$in的用法:满足条件之一
{"provinceId":{$in:["53dc4e954bbaa3e56e7672f0", "53dc4e954bbaa3e56e7672ba"]}}
in表示满足里面的条件之一 53dc4e954bbaa3e56e7672f0 或 53dc4e954bbaa3e56e7672ba即可
注意:如果[]里面没有元素,将查询不出来符合条件的数据。
$nin的用法 不满足条件之一
{"provinceId":{$nin:["53dc4e954bbaa3e56e7672f0", "53dc4e954bbaa3e56e7672ba"]}}
nin表示不满足里面的条件之一 53dc4e954bbaa3e56e7672f0 或 53dc4e954bbaa3e56e7672ba 才行
$all的用法: 满足所有条件
{"path":{$all:["53a39830b21cdd81140b0a00", "53a398b1b21cdd81140b0a03"]}}
all表示全部满足里面的所有条件["53a39830b21cdd81140b0a00", "53a398b1b21cdd81140b0a03"]
$ne的用法: 不等于
{"name":{$ne:"张三"}} 姓名不等于张三的用户
$gt的用法 :大于
db.user.find({age:{$gt:20}}); 查询年龄大于20的用户
$lt的用法 :小于
$gte 的用法 :大于等于
$lte的用法 :小于等于
比较运算符end
元素运算符begin
$exists的用法:存在
语法: { field: { $exists: <boolean> } } 查询指定属性是否存在 true表示存在,false表示不存在
db.user.find({age:{$exists:false}}); 查询age属性存在的记录
db.user.find({age:{$exists:false}}); 查询age属性不存在的记录
$mod的用法:求余取模
语法:{ field: { $mod: [ divisor, remainder ] } } divisor 除数 余数divisor
db.user.find({age:{$mod:[10,0]}}); 查询年龄除以10余数是0的记录
$type的用法: 根据类型查询
语法:{field:{ $type: <BSON type number> | <String alias> } }
db.user.find({age:{$type:1}}); "double" 查询age的类型是double的记录
db.user.find({age:{$type:2}}); "string" 查询age的类型是string的记录
元素运算符end
js运算符begin
$where用法:js表达式为正则为真
注意:where 把二进制数据转换成json数据之后再做的查询,这样运行的效率比较低下,一般不推荐使用
db.user.find({$where:'this.age>20&&this.age<25||this.age>80&&this.age<90'});
$regex用法:正则表达式查询
语法:
{ <field>: { $regex: /pattern/, $options: '<options>' } }
{ <field>: { $regex: 'pattern', $options: '<options>' } }
{ <field>: { $regex: /pattern/<options> } }
db.user.find({"name":{$regex:/^san.*/i}}) 查询以"san"开头的记录
db.user.find({"name":{$regex:/san.*/i}}) 查询包含"san"开头的记录
注意:正则表达式的效率也很低下,能不用尽量不要用
js运算符end
空间定位与距离检索
http://blog.csdn.net/flamingsky007/article/details/39208837
相关推荐
"nodetunes" 是一个针对 MongoDB 的 CRUD(创建、读取、更新、删除)操作的实践项目,旨在帮助开发者加深对 MongoDB 和 JavaScript 的使用理解。 在这个项目中,"nodetunes" 涉及到以下关键知识点: 1. **MongoDB ...
生成器会根据你的模型自动生成CRUD操作的函数,如`Insert()`, `Find()`, `Update()`, `Remove()`等。 4. **整合到项目**:将生成的代码引入到你的项目中,直接调用这些函数即可实现对MongoDB的操作,无需手动编写...
在Java和Spring框架中,MongoDB提供了丰富的API和工具来支持数据的CRUD(创建、读取、更新、删除)操作。本文将深入探讨MongoDB在这些方面的应用。 **创建(Create)** 在MongoDB中,创建数据主要通过`insertOne()`...
CRUD 是 Create(创建)、Read(读取)、Update(更新)和 Delete(删除)的缩写,用于描述对数据库的基本操作。MongoDB 提供了一套完整的 API 用于执行 CRUD 操作。 **3.2 MongoDB CRUD 概念** - **插入操作**:...
这一章节将详细介绍MongoDB中的基本操作——创建(Create)、读取(Retrieve)、更新(Update)和删除(Delete),即CRUD操作: 1. **插入文档**:利用`insert`或`insertOne`命令插入单个文档;使用`insertMany`批量插入多...
MongoDB提供了丰富的命令和函数来执行这些操作,比如使用`insert()`方法添加数据,`find()`方法读取数据,`update()`方法更新数据,以及`remove()`方法删除数据。 ### 8. 索引管理与执行计划 为了提高查询效率,...
- **CRUD操作**:MongoDB提供了简单易用的命令来进行数据的增删改查。 - **插入数据**:使用`insert`命令向集合中插入文档。 ```bash db.person.insert({"name": "itachi", "age": 26}) ``` - **查询数据**:...
- **Repository接口**: 可以定义自定义的CRUD操作,通过继承MongoRepository或CustomRepository接口实现。 4. **示例代码解析** - **配置MongoDB**: 配置MongoDB的数据源,包括连接地址、数据库名等。 - **实体...
例如,可以通过`DBCollection`接口的`insert()`, `find()`, `update()`, `remove()`等方法执行相应的数据库操作。 3. **文档模型**:Java驱动程序将MongoDB的BSON(Binary JSON)文档映射为Java对象,便于在Java...
4. **文档操作**:插入文档通常用`Insert Document`,更新文档常用`Update Document`,如果需要替换整个文档,可以使用`Replace Document`。查询文档时,可以使用`Find Documents`配合查询条件,如字段、值和操作符...
### MongoDB入门学习...以上介绍了MongoDB的基本概念、安装配置方法以及常用的CRUD操作和索引管理技巧,对于初学者来说是一个很好的起点。通过这些基础知识的学习,可以帮助用户快速上手MongoDB并应用于实际项目中。
MongoDB提供了强大的CRUD(创建、读取、更新、删除)功能,使得开发者能够轻松地对数据进行操作。 ##### 3.1 MongoDB CRUD 概述 MongoDB的CRUD操作是指对数据库中的文档进行增删改查的操作。这些操作可以通过...
MongoDB 支持四种基本操作:创建(insert)、读取(find)、更新(update)和删除(remove),简称为 CRUD 操作。创建新文档时,可以向集合中插入一个或多个文档,如示例所示: ```javascript db.test.insert({ ...
- **CRUD操作**:创建(Create)、读取(Read)、更新(Update)、删除(Delete)是MongoDB的基本操作,对应的方法有`insert()`, `find()`, `update()`, `remove()`等。 以上内容只是MongoDB基础知识的冰山一角,深入学习...
首先,验证目的旨在确认MongoDB在各种操作系统环境下能否顺利运行,包括数据库的安装、自动启动、创建数据库、创建业务表以及执行CRUD(创建、读取、更新、删除)操作。 在Windows平台上,MongoDB的安装过程相对...
本文将详细介绍MongoDB中的增删查改(CRUD)操作。 一、Insert操作 MongoDB的数据存储基于文档(Document),文档遵循BSON(Binary JSON)格式,与JSON相似但支持更多数据类型。插入操作主要分为单条插入和批量...