MongoDB 学习小笔记
1、配置:mongod --dbpath=D:\MongoDB\data
mongo
2、基本的增删查改
find() update()-- 整体更新,局部更新。
修改器: $inc db.person.update({"age":23},{$inc:{"salary":1000}})
第一个参数为条件。第二个参数为修改的值,但值必须为整数。($inc allowed for numbers only)
$set 修改器: db.person.update({"name":"gll"},{$set:{"age":25}}}
还有一种操作为修改或添加操作:这里可以叫insertOrUpdate操作。
只要将update的第三个参数设为true即可。如果没有查到,就在数据库里新增一条,避免数据库里判断是update还是add操作。使用简单。
批量更新:
如果匹配多条的话, 默认的情况下只更新第一条。如果需要多条更新的话,在update的第四个参数中设为true即可。也很简单。
Remove 操作。
3、高级操作
聚合:
count() distinct() 选择了哪个属性,哪个就不能重复。
group() 参数 key : 指定文档分组的依据,所有的age键的值划分到一组,true为返回键age的值。
initial: "initial":{"person":[]} 每一组reduce函数调用的初始个数,第一组的所有成员都会使用这个累加器。
说白了。这个就是个初始值。每次$reduce 都会调用这个值进行值的改变。
例子:
db.person.group({
. "key":{"age":true},
. "initial":{"person":[]},
. "$reduce":function(cur,prev){ 第一个参数为当前文档,第二个参数为累加器文档
. prev.person.push(cur.name);
. }
. })
eg : db.person.group({
"key": {
"age": true
},
"initial": {
"person": [
]
},
"$reduce": function(doc,out){
out.person.push(doc.name);
},
"finalize": function(out){
out.count=out.person.length;
},
"condition": {
"age": {
$lt: 25
}
}
MongoDB 学习小笔记的更多相关文章
- # ML学习小笔记—Gradien Descent
关于本课程的相关资料http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17.html 根据前面所为,当我们得到Loss方程的时候,我们希望求得最优的Loss方 ...
- English - 英语学习小笔记
1.It is...to do sth:做某事是.... 解析:It 是形式主语,后面一半接形容词做表语,to do sth是不定式短语作真正主语. 2.make do和make doing是两种表达 ...
- WEB学习小笔记
环境基于WIN10.IDEA最新版.JDK1.8.TOMCAT9 下面说的有错的地方希望指出,谢谢. STRUT2 1.在maven下的时候系统会系统创建一个叫做log4j的配置文件,但是到了这个版本 ...
- # ML学习小笔记—Classification
关于本课程的相关资料http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17.html 通过模型可以分类输入,此时根据分类结果的正确与否会有一个Loss函数.找 ...
- SQL 学习小笔记
1.FOUND_ROWS() 题目: ,; 在上边sql中使用什么选项可以使 SELECT FOUND_ROWS()忽略LIMIT子句,返回总数? *答案* : SQL_CALC_FOUND_ROWS ...
- java学习小笔记(三.socket通信)【转】
三,socket通信1.http://blog.csdn.net/kongxx/article/details/7288896这个人写的关于socket通信不错,循序渐进式的讲解,用代码示例说明,运用 ...
- # ML学习小笔记—Where does the error come from?
关于本课程的相关资料http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17.html 错误来自哪里? error due to "bias" ...
- # ML学习小笔记—Linear Regression
Regression Output a scalar Model:a set of function 以Linear model为例 y = b+w * $x_cp$ parameters:b,W f ...
- vue 的个人学习小笔记
一.vite2.0+vue3.0+ts 创建.配置 个人公众号文章地址 个人github仓库地址 1.Vite 创建 vue3 项目: 1.1.npm 常用命令 1.npm 查看版本号 npm vie ...
随机推荐
- JS利用XMLHttpRequest拦截ajax请求
function XMLHttpRequestBreak(fun=()=>false){ let f = XMLHttpRequest.prototype.open; let add = fun ...
- 【转】Java操作CSV文件导入导出
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...
- vue2.0 父子组件之间的通信问题
概要: 父组件向子组件通信:props属性 子组件向父组件通信:$emit()触发事件,$on()监听事件 在 vue 1.0 中可以使用$dispatch 和 $broadcast来实现 向上派发事 ...
- watir学习系列--对话框处理(转)
1.下面是网上编写的类库,保存为libAutoit.rb #LibAutoit主要处理windows弹出的对话框,调用autoit类进行处理 #函数如下: #- ChooseFileDialog函数: ...
- leetcode-easy-string-28 Implement strStr()
mycode 77.15% class Solution(object): def strStr(self, haystack, needle): """ :type ...
- elk5.0 版本遇到的安装问题
问题1:max_map_count不够大 max virtual memory areas vm.max_map_count [65536] likely too low, increase to a ...
- Cannot find terminfo entry for 'linux'.
解决方案: 1. 查看 /usr/share/terminfo 目录下的内容,该目录的内容表示该主机支持哪些终端类型. 2. 通过修改系统变量TERM为vt100. 执行 export TERM=vt ...
- Linux_RHEL_设置网络
目录 目录 Selinux Iptable NetworkManager 基本网络配置 编辑网卡子接口 ip指令 ifconfig指令 修改主机名 服务端口 Selinux 是Linux的一种权限管理 ...
- nginx不记录指定文件类型日志
1.指定记录文件日志记录的内容. vim /usr/local/nginx/conf/nginx.conf如下部分: log_format dd '$remote_addr $http_x_forwa ...
- simple vimrc for python
"显示行数,设置软回车和缩进还有语法set numberset expandtabset tabstop=8set shiftwidth=4set softtabstop=4set auto ...