db.xs.insert({name:zhangsan})   db:当前数据库  xs:学生集合(没有的话自动创建)

show collections   显示当前数据库的集合名字

show dbs  显示当前数据库名字

db.getName()    显示当前数据库名字

db.getCollectionNames()      显示当前集合名字

db.dropDatabase()     删除数据库命令

db.wtd.drop()  删除当前集合名字

db.createUser({user:"123",pwd:"123",roles:[{role:"read",db:"admin"}]})     插入用户名

db.system.users.find().pretty()    查询数据库中的user信息

db.dropUser("123")      删除数据库中的用户

function cha(obj){var d=db.getCollection("wtdd");d.insert(obj);}    定义function函数

cha({"123123":"123333333333"})        执行函数,注意花括号

db.wtdd.find()                    查询数据库内容

db.wtdd.drop()                 删除当前集合

db.wtdd.remove({123:"123"})            删除集合内的元素

var shu=[{name:"zs",age:13,sex:"nan"},{name:"ls",age:27,sex:"nv"},{name:"zl",age:10,sex:"nan"},{name:"ww",age:27,sex:"nv"}]

db.wtdd.insert(shu)

db.wtdd.find({"name":"ww"},{_id:0})     find({},{}) 第一个花括号里面是限制条件,第二个是输出限制条件1输出,0不输出

db.wtdd.find({name:"ww"},{_id:0,name:1})      只显示name,{ "name" : "ww" }

db.wtdd.find({age:{$gte:13}})    查找age大于等于13的人

db.wtdd.update({name:"ww"},{$set:{name:"wwwwww"}})    更新操作

db.wtdd.update({name:"wwwwww"},{$set:{size:"wwwwww"}},false,false)  update增加列操作,第一个是true找不到就新增一列(false只更新找到的),第二个true更新所有匹配到的信息(false只更新第一个找到的)

db.wtdd.find({sex:{$in:["nv","nan"]}})       找到字段中包含[*,*,*],寻找*的,$in找到其中一个就行,可以是  db.wtdd.find({sex:{$in:[null]}}) 寻找字段为null的数据

db.wtdd.update({sex:{$in:[null]}},{$set:{sex:"nan"}},false,true) 寻找到sex为null的数据后增添列设置为nan

db.wtdd.find({$and:[{age:{$lt:27}},{age:{$not:{$in:[null]}}}]},{_id:0})   找到age不为空的并且年龄小于27岁,and数组里面是对象,用{}扩住

db.wtdd.find({age:{$not:{$lt:27}}})  查找年龄大于27岁的,此时如果age为null也会被扫描进来,应该加判断条件判断age不为null

for(var i=1;i<=10;i++) db.wtdd.insert({_id:i,name:i,age:i})        批量存入数据

db.wtdd.find({}).limit(4)    只输出前四个数值

db.wtdd.find({}).limit(4).skip(2)       跳过前两个,从第三个开始输出数值

db.wtdd.find({"like.0":"jsp"})                   找到数组中第0个数为jsp的数,下标从零开始

db.wtdd.find({like:{$all:["jsp","java"]}})      查找数组元素中油查找元素的数据

db.wtdd.update({like:{$size:2}},{$set:{size:2}},false,true)  查找到数组元素大小为2的数据赋值列大小为2

db.wtdd.update({_id:1},{$push:{like:"12"},$inc:{size:1}})   找到id为1的数据,添加元素兵使size+1,这里的$inc不用加花括号

db.wtdd.update({_id:1},{$inc:{size:1}})    单纯设置一个数+1

db.wtdd.find({_id:1},{like:{$slice:[-1,123]}})            slice中的参数第一个是起始下标,第二个参数是输出的数目,如果第一个参数是-1,第二个参数必须是>=1,只输出最后一个数

db.wtdd.save({_id:1,name:1,age:123})   insert和save的区别:insert不能重复id键,save可以重复主键id,重复之后只有现在的,原来的数组元素都会删掉,相当于删掉后添一条

db.wtd.remove({})  一键删除集合中的所有数据,参数为{}花括号

db.wtdd.update({_id:1},{$set:{age:"123123123123"}})     当原来的数据有这一列的时候会更新掉原来的数据

可以自己设置_id号,insert()里面参数是_id:123

db.wtdd.find({"like.1":"java"})  ------------------db.wtdd.find({like:"java"})    两个都能查找数组内的元素是否有java

·db.wtdd.update({_id:1},{$unset:{age:"fuck"}})    先找到,后执行删除$unset操作,后面的fuck参数随便写。

db.wtdd.update({_id:1},{$unset:{name:""}})不谢也行

db.wtdd.update({_id:1},{$set:{like:["c++","java"]}})---------------------db.wtdd.update({_id:1},{$push:{like:"c+"}})  向数组中添加数据

db.wtdd.update({name:{$lt:7}},{$set:{like:["jsp","java"]}},false,true)   增加数组元素

db.wtdd.update({_id:1},{$push:{likes:"c#"}})    push操作直接生成一个数组,没有的话承建一个,有的话插进去

db.wtdd.update({_id:1},{$addToSet:{like:"c+++"}})  添加的时候进行判断,有重复的加不进去,push不检查直接插进去

db.wtdd.update({_id:1},{$pop:{like:1}})     参数为1删除最后一个数,参数为-1时删除第一个数

db.wtdd.update({_id:1},{$pushAll:{like:["java!!","c++--","c#"]}})        同时插进去好多个数

db.wtdd.update({_id:1},{$pull:{like:"c#"}})     pull删除数组中的指定值,有重复的都会被删掉

db.wtdd.update({_id:1},{$pullAll:{like:["c+","java"]}})   pullAll删除数组中的的许多值,有重复的一并都删掉

> var ite=db.wtdd.find()

> while(ite.hasNext()){var to=ite.next();print(to._id);}   利用迭代器操作查找数据集

https://paste.ubuntu.com/p/dntz6p6BYq/

var persons = [{
name:"jim",
age:25,
email:"75431457@qq.com",
c:89,m:96,e:87,
country:"USA",
books:["JS","C++","EXTJS","MONGODB"]
},
{
name:"tom",
age:25,
email:"214557457@qq.com",
c:75,m:66,e:97,
country:"USA",
books:["PHP","JAVA","EXTJS","C++"]
},
{
name:"holiday",
age:26,
email:"344521457@qq.com",
c:75,m:63,e:97,
country:"USA",
books:["JS","JAVA","C#","MONGODB"]
},
{
name:"zhangsan",
age:27,
email:"2145567457@qq.com",
c:89,m:86,e:67,
country:"China",
books:["JS","JAVA","EXTJS","MONGODB"]
},
{
name:"lisi",
age:26,
email:"274521457@qq.com",
c:53,m:96,e:83,
country:"China",
books:["JS","C#","PHP","MONGODB"]
},
{
name:"wangwu",
age:27,
email:"65621457@qq.com",
c:45,m:65,e:99,
country:"China",
books:["JS","JAVA","C++","MONGODB"]
},
{
name:"zhaoliu",
age:27,
email:"214521457@qq.com",
c:99,m:96,e:97,
country:"China",
books:["JS","JAVA","EXTJS","PHP"]
},
{
name:"piaoyingjun",
age:26,
email:"piaoyingjun@uspcat.com",
c:39,m:54,e:53,
country:"Korea",
books:["JS","C#","EXTJS","MONGODB"]
},
{
name:"lizhenxian",
age:27,
email:"lizhenxian@uspcat.com",
c:35,m:56,e:47,
country:"Korea",
books:["JS","JAVA","EXTJS","MONGODB"]
},
{
name:"lihuiying",
age:21,
email:"lihuiying@uspcat.com",
c:36,m:86,e:32,
country:"Korea",
books:["JS","JAVA","PHP","MONGODB"]
},
{
name:"zhangsuying",
age:22,
email:"zhangsuying@uspcat.com",
c:45,m:63,e:77,
country:"Korea",
books:["JS","JAVA","C#","MONGODB"]
}]

查询语文成绩大于85或者英语大于90的学生信息 

db.persons.find({$or:[{c:{$gte:85}},{e:{$gte:90}}]},{_id:0,c:1,e:1})    or操作用[]包括

查询出名字中不存在”li”的学生的信息

cha.find({name:{$not:/li/i}},{_id:0,name:1})

查询国籍不是中国或美国的学生信息 

 db.persons.find({country:{$nin:[“USA”,“China”]}})                             $not用于任何取反操作,$nin只适用于集合操作。

$all ----------------->[a,b,c,d]数组中的都得存在

cha.find({books:{$all:["JS","MONGODB"]}},{_id:0,name:1,age:1}).sort({age:1})       sort参数为{},参数为1是从小到大,参数为-1是从大到小

var find=cha.find()
> while(find.hasNext()){var to=find.next();cha.update({name:to.name},{$set:{size:to.books.length}},false,true)}       通过函数实现增加列元素,查找喜欢的书是三个的操作。

cha.find({name:"jim"},{books:{$slice:[1,2]}})                silice实现输出插片输出    books:{$slice:-1}  直接输出最后一个数

找到年龄大于22岁,在K学校上过学的学生并且喜欢C++

cha.find({age:{$gt:22},books:"C++","school.school":"K"},{_id:0}).pretty()

以j开头的数据:/^j/,以ok结尾的数据:/ok$/,含有ij的数据:/ij/,查询部分大小写的数据:/ij/i  后面的i

function haha(){var t=Math.floor(Math.random()*1000);print(t);}       随机生成函数,*100就是1-100的数,floor向负无穷取整,ceil是向正无穷取整。

执行文档操作,返回文档操作之前或者之后的结果,主要是new的赋值,找不到为null

ps = db.runCommand({
"findAndModify":"persons",
"query":{name:"test"},
"update":{"$set":{"age":11}},
"new":true
}).value
--"findAndModify" 集合名
--"query" 查询器
--"update" 修改器
--"new" 状态--如果 true 表示返回结果是更新后的,false 为更新前
--"sort" 排序

查找函数

distinct操作,后面value和values结果不一样,value只处理一个结果,values处理许多结果

col = db.runCommand({distinct:"wtdd",key:"name"}).values

distinct元组内所有的不一样的元素

集合操作分组,condition可以省略,那个是限制结果底线的

db.runCommand({
group:{
ns:集合名字,
Key:分组的键对象,
Initial:初始化累加器,
$reduce:组分解器,
Condition:条件,
Finalize:组完成器
}
})

按照国家分类找出e最大的数,function中的参数一个是now,一个是pre

db.runCommand({
group:{
ns:"wtd",
key:{"country":true},
initial:{e:0},
$reduce:function(now,pr){
if(now.e>pr.e){
pr.e=now.e;
pr.name=now.name;
}
},
// condition:{e:{$gt:80}}

finalize:function(pr){                                   将输出值有一定的格式输出
pr.e = pr.name+" -> scores "+pr.e
}

}
})

聚合操作,流水线,先找到然后处理数据,按照status等级A,B,C分类后求出每个等级的总和

必须为_id,

db.w.a([{$match:{status:{$in:['A','B','C']}}},{$group:{"_id":'$status',sum:{$sum:'$amount'}}}])

mapReduce

var map = function(){emit(this.location,this.name);}     第一个参数:依据分类的组,第二个参数:this.name是要现在的字符串有用做链接啥的,计数的话可以是数字1,就是放一个东西到了每一个group里面

var reduce = function(key,values){return values.join(",");}   function函数放着对数据的运用,key是上一个map中的分类列,后面是对每个group中存的东西进行计算,就是上一个map中放进来的东西

var options = {out:"age_sum"}       把结果写入到集合中,以便查找

db.my.mapReduce(map,reduce,options)   执行mapReduce操作

db.age_sum.find().pretty()  从查找的集合中显示出结果

var map = function(){emit(this.location,this.name);}
> var reduce = function(key,values){return key+":"+values.join(",");}
>var options = {query:{age:{$lt:25}},out:"haha"}       在options中可以进行元素选择。
> db.my.mapReduce(map,reduce,options)

> db.haha.find()

mapReduce中间的参数可以可以调换名字,名字可以随便调换,函数调用顺序不能变换

-----------------------------------------------分割线--------------------------------------------------------------------

mongodb学习(入门。。。。。)的更多相关文章

  1. mongodb的入门学习

    mongodb的入门学习 简介: MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库 ...

  2. MongoDB学习笔记:快速入门

    MongoDB学习笔记:快速入门   一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...

  3. MongoDB学习——基础入门

    MongoDB--基础入门 MongoDB是目前比较流行的一种非关系型数据库(NoSql),他的优势这里不废话,我们关注怎么使用它. 安装 下载,首先肯定要去下载,我们去官网下载,在国内,可能没FQ可 ...

  4. mongodb新手入门,mongodb命令学习

    下面来总结一下mongodb新手入门的常用命令吧.要是您是mongodb新手,可以看下. 1,show dbs 查询mongodb里面的数据库列表 如果想查看当前连接在哪个数据库下面,可以直接输入db ...

  5. MongoDB 学习笔记之 入门安装和配置

    下载MongoDB: 下载解压即可使用. 为了启动方便和统一管理, 在Mongo根目录下建立/data, /logs, /conf文件夹. 在conf文件夹下建立mongodb.conf 文件,基本配 ...

  6. 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)

    今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...

  7. MongoDB学习记录

    一.操作符 "$lt" :"<""$lte" :"<=""$gt" :"> ...

  8. 大数据应用之:MongoDB从入门到精通你不得不知的21个为什么?

    一.引言: 互联网的发展和电子商务平台的崛起,催生了大数据时代的来临,作为大数据典型开发框架的MongoDB成为了No-sql数据库的典型代表.MongoDB从入门到精通你不得不知的21个为什么专为大 ...

  9. mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)

    最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...

随机推荐

  1. java的3大特性

    java的3大特性 1.继承: * 继承是从已有类得到继承信息创建新类的过程. * 提供继承信息的类被称为父类(超类.基类):得到继承信息的类被称为子类(派生类). * 继承让变化中的软件系统有定的延 ...

  2. Best Cow Line---POJ 3617(贪心)

    FJ is about to take his N (1 ≤ N ≤ 2,000) cows to the annual"Farmer of the Year" competiti ...

  3. 编写输出“Hello world”

    1.打开Eclipse---->点击文件 如图所示:   2. 然后在新建--->点击Java项目会出现下图框------>在项目名输入框中输入项目名并选择JRE----->点 ...

  4. koa2学习(二) 中间件router

    中间件 koa-router 安装 npm install --save koa-router 使用 const Koa = require('koa'); const Router = requir ...

  5. react-native 常用的一些插件

    react-native 常用的一些插件 最近在做react-native的app,用到的一些好用的插件,在这儿记录一下 由于返回的后台内容是富文本编辑器Quill,返回的的是Delta对象,使用了q ...

  6. Ubuntu环境下配置darknet

    本教程基于Linux物理机进行相关配置,要求物理机中包含N卡且Capbility>=3.0,小于3.0(Fermi架构)只允许配置cuda,不能配置使用Cudnn: 本教程分为: 1.安装NVI ...

  7. 如何在微信小程序定义全局变量、全局函数、如何实现 函数复用 模块化开发等问题详解

    1.如何定义全局数据 在app.js的App({})中定义的数据或函数都是全局的,在页面中可以通过var app = getApp();  app.function/key的方式调用,不过我们没有必要 ...

  8. 字符串----hiho字符串(尺取法)

    注意:这道题的解法和最短摘要一样,都是采用尺取法解决问题,注意这儿题目要求恰好包含,也就是说这个hiho字符串必须包含2个'h'.1个'i'和1个'o'.一个不能多,一个也不能少. import ja ...

  9. 微信小程序快速开发上手

    微信小程序快速开发上手 介绍: 从实战开发角度,完整系统地介绍了小程序的开发环境.小程序的结构.小程序的组件与小程序的API,并提供了多个开发实例帮助读者快速掌握小程序的开发技能,并能自己动手开发出小 ...

  10. [Swift]LeetCode75. 颜色分类 | Sort Colors

    Given an array with n objects colored red, white or blue, sort them in-place so that objects of the ...