windows下mongodb基础玩法系列二CURD附加一
- windows下mongodb基础玩法系列一介绍与安装
- windows下mongodb基础玩法系列二CURD操作(创建、更新、读取和删除)
- windows下mongodb基础玩法系列二CURD附加一
目录
集合的创建与返回值
②这一次就不实际操作截图了,按照之前的操作我又走看一遍,这一次留意了一个小的细节。增加内容成功后会返回一个WriteResult({"nInserted":1}),这个对象表示了插入的条数。
增加多个文档的方法
//用数组存放多个文档
var users = [{
"name":"A",
"age":32
},{
"name":"B",
"age":33
},{
"name":"C",
"age":34
}];
//添加数组操作
db.testData.insert(users);
②在2.6版本之后提供了一个可以用来增加多个文档的API,具体操作流程展开代码。
//初始化bulk()
var bulk = db.testData.initializeUnorderedBulkOp();//无序列表操作
//var bulk = db.collection.initializeOrderedBulkOp();//有序列表操作
//insert至bulk对象
bulk.insert({
"name":"A",
"age":20
});
bulk.insert({
"name":"B",
"age":21
});
//调用bulk对象的execute()方法添加文档至集合
bulk.execute();
这里只是描述一下有这两个方法,暂时不做深入学习,感觉挺需要深入学习的一点,后续跟踪一下。
目录
指定查询与条件查询使用
db.testData.find({$or:[{"name":"A"},{"age":{$in:[33,34]}}]});
嵌入式(Embedded)文档查询的方法
//插入模拟数据
db.testData.insert([{
"name":"unofficial",
"age":18,
"other":{
"hobby":["eat","drink","play","happy"],
"speciality":["hands","legs"]
},
"score":[58,59,60]
},{
"name":"pushself",
"age":100,
"other":{
"hobby":["play"],
"speciality":["legs"]
},
"score":[60,70,80]
}]);
//成绩分别对应语数外,找到语文成绩小于60的同学的姓名
db.testData.find({"score.0":{$lt:60}},{"_id":0, "name":1});
//把好吃的家伙的名字查出来
db.testData.find({"other.hobby":"eat"},{"_id":0, "name":1});
限制查询
反复的切换光标读取
//执行查找操作
var rs = db.testData.find({});
//遍历
while(rs.hasNext()) {
print(tojson(rs.next()));//也可以使用printjson(rs.next());
}
其中的while也可以使用myCursor.forEach(printjson);代替操作
查询的性能问题
//插入一组测试数据
db.testData.insert([
{ "_id" : 1, "item" : "f1", type: "food", quantity: 500 },
{ "_id" : 2, "item" : "f2", type: "food", quantity: 100 },
{ "_id" : 3, "item" : "p1", type: "paper", quantity: 200 },
{ "_id" : 4, "item" : "p2", type: "paper", quantity: 150 },
{ "_id" : 5, "item" : "f3", type: "food", quantity: 300 },
{ "_id" : 6, "item" : "t1", type: "toys", quantity: 500 },
{ "_id" : 7, "item" : "a1", type: "apparel", quantity: 250 },
{ "_id" : 8, "item" : "a2", type: "apparel", quantity: 400 },
{ "_id" : 9, "item" : "t2", type: "toys", quantity: 50 },
{ "_id" : 10, "item" : "f4", type: "food", quantity: 75 }
]);
//执行查找操作
db.testData.find({"type":"food"});
//nscanned 和 nscannedObjects 显示 10 表明MongoDB不得不扫描十文档 (即集合中的所有文档)找到这四个匹配文档。
//如果给type添加一个索引
db.testData.ensureIndex({"type":1})
//再执行查询操作的时候就查询四个索引文档,并返回了四个文档内容 //复合索引的性能
db.testData.ensureIndex( { quantity: 1, type: 1 } );
db.testData.ensureIndex( { type: 1, quantity: 1 } );
//明显通过数据可以看出性能的差异,更多的后面的学习文章争取分析一下查询优化
windows下mongodb基础玩法系列二CURD附加一的更多相关文章
- windows下mongodb基础玩法系列二CURD操作(创建、更新、读取和删除)
windows下mongodb基础玩法系列 windows下mongodb基础玩法系列一介绍与安装 windows下mongodb基础玩法系列二CURD操作(创建.更新.读取和删除) windows下 ...
- windows下mongodb基础玩法系列一介绍与安装
windows下mongodb基础玩法系列 windows下mongodb基础玩法系列一介绍与安装 windows下mongodb基础玩法系列二CURD操作(创建.更新.读取和删除) windows下 ...
- AB实验的高端玩法系列3 - AB组不随机?观测试验?Propensity Score
背景 都说随机是AB实验的核心,为什么随机这么重要呢?有人说因为随机所以AB组整体不存在差异,这样才能准确估计实验效果(ATE) \[ ATE = E(Y_t(1) - Y_c(0)) \] 那究竟随 ...
- eclipse下使用cygwin的方法(Windows下用eclipse玩gcc/g++和gdb)
明天就回国了,今晚回国前写写如何配置eclipse和CDT.这个配置方法网上讨论不是很多,可能用的人少,毕竟Windows上写C++程序多数喜欢VS,即使写的是Linux程序,很多人仍然会用VS(说只 ...
- windows下Mongodb图形化工具安装及配置
接上篇文章<Windows下Mongodb安装部署.docx> 一.RockMongo 1.RockMongo需要php环境,首先需要搭建php环境,选择采用 下载xampp,这里我用的是 ...
- [转载]windows下mongodb安装与使用整理
windows下mongodb安装与使用整理 一.首先安装mongodb 1.下载地址:http://www.mongodb.org/downloads 2.解压缩到自己想要安装的目录,比如d:\mo ...
- Word 查找替换高级玩法系列之 -- 段首批量添加字符
打开「查找和替换」输入框,按照下图操作: 更多查找替换高级玩法,参看:Word查找替换高级玩法系列 -- 目录篇 未完 ...... 点击访问原文(进入后根据右侧标签,快速定位到本文)
- Word 查找替换高级玩法系列之 -- 把论文中的缩写词快速变成目录下边的注释表
1. 前言 问题:Word写论文如何把文中的缩写快速转换成注释表? 原来样子: 想要的样子: 2. 步骤 使用查找替换高级用法,替换缩写顺序 选中所有文字 打开查找替换对话框,输入以下表达式: 替换后 ...
- Windows下MongoDB安装与设置
最近在研究传奇已久的MongoDB,遇到很多问题,将整理好的Windows下的MongoDB整体到连接过程分享给大家,也留给自己. 第一步:下载http://www.mongodb.org/downl ...
随机推荐
- FT_ND_API.dll
ePass1000ND https://blog.csdn.net/li34442779/article/details/44276989 https://www.cnblogs.com/lidabo ...
- activeMq-3 Spring整合activeMq
与jdbcTemplate相似的是,Spring也提供了JmsTemplate 生产者使用JmsTemplate生产消息,消费者实现一个监听器用于获取消息 项目用maven构建,jdk1.8, 文末提 ...
- 【APP测试(Android)】--硬件测试
- 学习Tensorflow的LSTM的RNN例子
学习Tensorflow的LSTM的RNN例子 基于TensorFlow一次简单的RNN实现 极客学院-递归神经网络 如何使用TensorFlow构建.训练和改进循环神经网络
- Eclipse中代码自动提示功能设置
Eclipse中代码自动提示功能设置 1 打开eclipse→Windows→Preferences→Java→Editor→Content Assist: 修改Auto Activation tri ...
- Python12/10--前端之display/overflow使用/清浮动的方式
display: 1.inline 同行显示,当一行显示不下.多余的就会换行显示, 不支持的css样式:不支持宽高,不支持行高(行高会映射给父级) 不支持margin上下,content由 文本内容撑 ...
- 2019.02.11 bzoj1568: [JSOI2008]Blue Mary开公司(线段树)
传送门 题意简述:维护整体加一条线段,求单点极值. 思路: 直接上李超线段树维护即可. 代码: #include<bits/stdc++.h> #define ri register in ...
- 13. The Impact of New Technology on Business 新科技对商务的影响
13. The Impact of New Technology on Business 新科技对商务的影响 (1) New technology links the world as never b ...
- PowerShell 使用.NetFramework
我们都知道,由于PowerShell是基于.NETFramework建立的所以它能够具备访问.NET的能力,因为.NET提供了庞大的数据类库,所以我们可以很好的使用PowerShell去完成一些Pow ...
- 【慕课网实战】Spark Streaming实时流处理项目实战笔记十九之铭文升级版
铭文一级:(没有内容) 铭文二级: 创建Spring boot项目: 看官网,Quick Start下面有两个依赖,必须得使用 但是如果用IDEA构建Spring boot,则会自动添加 New Pr ...