初识Mongdb之数据查询篇(三)

简介: 初识Mongdb之数据查询篇(三)

操作案例干货合集

修改数据

db.getSiblingDB('cqust');
var 查询条件={'sno':2019000000};
var 更新条件={$set:{'body.weight':100,'name':'王小王'}};
db.students.update(查询条件, 更新条件);

如何去修改数据:首先我们要明确我们需要修改的数据处于哪一个位置,或者在哪一个字段,我们利用$set:{字段:新值},其实对于这个我们很明显的就是修改数组字段。

其他操作

$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果。

利用字段的类型进行查询:$type

首先我们在查询条件里面加入我们需要查询的字段名,然后就是一个:{$type:'string'},也可以数字:2

MongoDB 中可以使用的类型如下表所示

类型 数字 备注
Double 1  
String 2  
Object 3  
Array 4  
Binary data 5  
Undefined 6 已废弃。
Object id 7  
Boolean 8  
Date 9  
Null 10  
Regular Expression 11  
JavaScript 13  
Symbol 14  
JavaScript (with scope) 15  
32-bit integer 16  
Timestamp 17  
64-bit integer 18  
Min key 255 Query with -1.
Max key 127  
db.getSiblingDB('cqust');
var 查询条件={'body.weight':{$type:'string'}}; //2也可以
var 查询条件={'body.weight':{$type:'double'}}; //1也可以
var 返回条件={};
db.students.find(查询条件,返回条件)

这样所查询到的数据就会是我们所需要的数据类型数据

利用math.random进行随机数的生成,最后完成我们的更新操作

//修改2019000000的身高为 160-170以内的随机数
//修改2019000000的身高属性改为字符串类型
var 查询条件={'sno':2019000000};
var 更新操作={$set:{'body.height':Math.floor(Math.random()*10+160)}}
db.students.update(查询条件, 更新操作);
//验证查询
var 查询条件={'sno':2019000000};
var 返回条件={};
var result=db.students.findOne(查询条件,返回条件);

利用数组进行更新操作,取出我们的数据,并将其转换为字符串类型的数据,然后利用$set:进行更新操作

//方法一:更新指定字段(重点掌握)
result.body.height=String(result.body.height)
var 更新操作={$set:{'body.height':result.body.height}}
db.students.update(查询条件, 更新操作);

原子操作知识回顾

$set

用来指定一个键并更新键值,若键不存在并创建。

{ $set : { field : value } }

$unset

用来删除一个键。

{ $unset : { field : 1} }

$inc

$inc可以对文档的某个值为数字型(只能为满足要求的数字)的键进行增减的操作。

{ $inc : { field : value } }

 

$push

把value追加到field里面去,field一定要是数组类型才行,如果field不存在,会新增一个数组类型加进去。

用法:

{ $push : { field : value } }

$pushAll

同$push,只是一次可以追加多个值到一个数组字段内。

{ $pushAll : { field : value_array } }

$pull

从数组field内删除一个等于value值。

{ $pull : { field : _value } }

$addToSet

增加一个值到数组内,而且只有当这个值不在数组内才增加。

$pop

删除数组的第一个或最后一个元素

{ $pop : { field : 1 } }

$rename

修改字段名称

{ $rename : { old_field_name : new_field_name } }

$bit

位操作,integer类型

{$bit : { field : {and : 5}}}

偏移操作符

> t.find() { "_id" : ObjectId("4b97e62bf1d8c7152c9ccb74"), "title" : "ABC", "comments" : [ { "by" : "joe", "votes" : 3 }, { "by" : "jane", "votes" : 7 } ] }
> t.update( {'comments.by':'joe'}, {$inc:{'comments.$.votes':1}}, false, true )
> t.find() { "_id" : ObjectId("4b97e62bf1d8c7152c9ccb74"), "title" : "ABC", "comments" : [ { "by" : "joe", "votes" : 4 }, { "by" : "jane", "votes" : 7 } ] }
//$exists 操作符,判断字段是否存在
db.test.insert({"name":'王小王'})
db.test.insert({"name":'王小王-123','gender':'男','age':19})

$exists:0(1)可以查询出前面的字段的存在性,如果存在那么属性为1,如果不存在那么属性就是0

//有name字段
db.test.find({'name':{$exists:1}})
//无name字段
db.test.find({'name':{$exists:0}})

$size:可以查询这个字段的信息是否为空

1.db.test.insert({myname:[1,2,3]})
//查询myname不为零的信息,而且存在的
db.test.find({myname:{$not:{$size:0},$exists:1}})
var cursor =db.students.find()
for(var i=0;i<10;i++)
{
  if(cursor.hasNext())
    printjson(cursor.next())
}

打印输出我们想要的信息,有时候我们查询返回的是一个信息,但是我们想要向Python打印那样,格式化的输出,这样更有利于我们的理解和直观查看数据的特性

语法类似于JavaScript的语法,和Python不是很一样,但是逻辑思维douchabduo

var 查询条件 = {'grade':2019,'class':1,'major':'大数据'};
var cursor = db.students.find(查询条件);
for(var i=0; i<cursor.length(); i++) {
  if (cursor[i].gender==0) 
    print("姓名:"+cursor[i].name+"\t身高:"+cursor[i].body.height+"\t性别:女");
};

image.png

本期的数据查询案例就到这里,当我们学过大量的查询语法之后我们发现和MySQL有一种比较类似的现象就是,要想根据实际的场景来编写代码一定要有足够的的语法和熟练度这样才可以!

相关文章
|
5月前
|
存储 关系型数据库 数据库
postgresql|数据库|提升查询性能的物化视图解析
postgresql|数据库|提升查询性能的物化视图解析
563 0
|
SQL 存储 分布式计算
【收藏】MongoDB 常用查询语句汇总
【收藏】MongoDB 常用查询语句汇总
1433 0
|
5月前
|
存储 SQL 关系型数据库
关系型数据库强大的查询功能
【5月更文挑战第9天】关系型数据库强大的查询功能
76 3
|
2月前
|
监控 NoSQL MongoDB
mongodb查询100万数据如何查询快速
综上,提高MongoDB百万级数据的查询性能需要综合多项技术,并在实际应用中不断调优和实践。理解数据的特征,合理设计索引,优化查询语句,在数据访问、管理上遵循最佳的实践,这样才能有效地管理和查询大规模的数据集合。
170 1
|
5月前
|
SQL 存储 Oracle
关系型数据库查询数据的语句
本文介绍了关系型数据库中的基本SQL查询语句,包括选择所有或特定列、带条件查询、排序、分组、过滤分组、表连接、限制记录数及子查询。SQL还支持窗口函数、存储过程等高级功能,是高效管理数据库的关键。建议深入学习SQL及相应数据库系统文档。
66 2
|
5月前
|
存储 关系型数据库 MySQL
|
11月前
|
NoSQL MongoDB
07 MongoDB - 数据查询
07 MongoDB - 数据查询
44 0
|
11月前
|
NoSQL MongoDB
10 MongoDB - 数据查询(排序)
10 MongoDB - 数据查询(排序)
54 0
|
JavaScript 前端开发 关系型数据库
初识Mongdb之数据查询篇(二)
初识Mongdb之数据查询篇(二)
134 0
初识Mongdb之数据查询篇(二)
|
SQL 人工智能 安全
MySQL数据库之数据查询
本文主要讲述了数据库中的SELECT语句、集函数查询、单表查询、多表查询、嵌套查询、子查询、带EXISTS关键字的子查询,并通过案例演示SQL语句的实际应用,可以帮助很好的帮助大家数据库的入门学习。
MySQL数据库之数据查询