前段时间工作上面由于没有多少事所以玩了玩mongodb,学习了它的基本语法,然后现在在这里做一个简单的总结。

1.我是在win平台上面,启动的话比较麻烦,所以我就简单的把启动过程做了个批处理文件

启动脚本

:启动mongodb的批处理文件,到mongodb的bin目录下面
D:
cd "Program Files"
cd MongoDB\Server\3.2\bin
:其中D盘下面的data,db目录是自己手动创建的
:启动带有的参数 --auth(开启用户访问权限)
:--dbpath(数据存储路径)
mongod.exe --auth --dbpath D:\data\db

2.一些简单基本语法

#创建或者切换数据库
use admin
#查询方法
db.system.users.find()
#格式化的查询结果
db.userinfo.find().pretty() 查询比较符
等于 {<key>:<value>} db.col.find({"by":"菜鸟教程"}).pretty() where by = '菜鸟教程'
小于 {<key>:{$lt:<value>}} db.col.find({"likes":{$lt:50}}).pretty() where likes < 50
小于或等于 {<key>:{$lte:<value>}} db.col.find({"likes":{$lte:50}}).pretty() where likes <= 50
大于 {<key>:{$gt:<value>}} db.col.find({"likes":{$gt:50}}).pretty() where likes > 50
大于或等于 {<key>:{$gte:<value>}} db.col.find({"likes":{$gte:50}}).pretty() where likes >= 50
不等于 {<key>:{$ne:<value>}} db.col.find({"likes":{$ne:50}}).pretty() where likes != 50
#查询年纪大于等于25的信息
db.userinfo.find({"age":{$gte:25}}).pretty() #查询age字段是String类型的记录。显示的结果集(默认显示_id字段)只有user_name和age这两个字段。
db.userinfo.find({"age":{$type:2}},{_id:0, "user_name":1, "age":1}) #删除用户
db.dropUser('root')
#创建新的用户 db.createUser({'user':'root', 'pwd':'000000','roles':[{'role':'readWrite', 'db':'mytest'}, {'role':'readWrite', 'db':'admin'}]}) #mongodb创建集合对象 db.XXX:表示如果XXX存在则往这里直接插入数据,如不存在,则创建对应的集合
#插入数据 db.COLLECTION_NAME.insert(document)
db.userinfo.insert([{user_name:'1', age:10, sex:1},{user_name:'2', age:10, sex:0}])
#mongodb更新语句更新单条语句 如果 $set字段不存在,若键不存在,会新建
db.item_info.update({"item_id":"c9aea5ea-c29d-43ec-8205-fdb1e69934b7"},{$set:{"item_name":"test_update", "test":"test_add"}})
$unset关键字,删除对应的key值
去除【item_name】、【test】这两个key
db.item_info.update({"item_id":"c9aea5ea-c29d-43ec-8205-fdb1e69934b7"},{$unset:{"item_name":"test_update", "test":"test_add"}}) #mongodb更新语句更新多条语句
db.userinfo.updateMany({"user_name":"1"}, {$set:{"user_name":"nie"}})
#更新age字段<= 20的字段为wewe值
db.userinfo.updateMany({"age":{$lte:20}}, {$set:{"age":"wewe"}}) #mongodb删除语句
db.userinfo.remove({"user_name":"2"}) 删除所有数据
db.userinfo.remove({}) #type
$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果。
// 查询age字段是string类型的所有记录
db.userinfo.find({"age":{$type:2}})
#MongoDB sort()方法
 
在MongoDB中使用使用sort()方法对数据进行排序,sort()方法可以通过参数指定排序的字段,
并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而-1是用于降序排列。
db.userinfo.find({},{_id:0,"user_name":1, "age":1}).sort({"age":1}).pretty()
 
#创建索引 过在创建索引时加background:true 的选项,让创建工作在后台执行
 
 
db.userinfo.ensureIndex({"user_name":1},{background:true})

最大范围

  • 集合中索引不能超过64个
  • 索引名的长度不能超过125个字符
  • 一个复合索引最多可以有31个字段
 
#MongoDB 聚合函数

#删除
db.item_info.deleteOne({"item_name":"update_item_name"})
db.item_info.find({"item_name":"update_item_name"}).count()
DeleteResult delete = item.deleteMany(Filters.eq("item_name", "update_item_name"));
System.out.println(delete.getDeletedCount()); #mongodb语句explain
> db.item_info.find({}).explain()
{
"queryPlanner" : {
"plannerVersion" : 1,
"namespace" : "test.item_info",
"indexFilterSet" : false,
"parsedQuery" : {
"$and" : [ ]
},
"winningPlan" : {
"stage" : "COLLSCAN",
"filter" : {
"$and" : [ ]
},
"direction" : "forward"
},
"rejectedPlans" : [ ]
},
"serverInfo" : {
"host" : "Lenovo-niejian",
"port" : 27017,
"version" : "3.2.8",
"gitVersion" : "ed70e33130c977bda0024c125b56d159573dbaf0"
},
"ok" : 1
} #mongodb语句like(正则表达式) 如果检索需要不区分大小写,我们可以设置 $options 为 $i。
以下命令将查找不区分大小写的字符串 w3cschool.cc db.posts.find({post_text:{$regex:"w3cschool.cc",$options:"$i"}}) db.item_info.find({"item_id":{$regex: /c9aea5ea/}})

Mongodb的基本语法的更多相关文章

  1. MongoDB update数据语法【转】

    在前面的文章“mongodb 查询的语法”里,我介绍了Mongodb的常用查询语法,Mongodb的update操作也有点复杂,我结合自己的使用经验,在这里介绍一下,给用mongodb的朋友看看,也方 ...

  2. Mongodb与mysql语法比较

    Mongodb与mysql语法比较   mongodb与mysql命令对比 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由 ...

  3. mongodb查询的语法(大于,小于,大于或等于,小于或等于等等)

    1 ) . 大于,小于,大于或等于,小于或等于 $gt:大于$lt:小于$gte:大于或等于$lte:小于或等于 例子: db.collection.find({ "field" ...

  4. mongodb常用查询语法

    一.查询 find方法 db.collection_name.find(); 查询所有的结果: select * from users; db.users.find(); 指定返回那些列(键): se ...

  5. mongoDB的常用语法

    安装: 到mongodb官网下载安装包或者压缩包:https://www.mongodb.com/download-center?jmp=nav 1.如果是msi包的话则点击按步骤安装,如果是压缩包的 ...

  6. mongoDB 高级查询语法

    http://www.cnblogs.com/ITAres/articles/2084794.html本文参考自官方的手册:http://www.mongodb.org/display/DOCS/Ad ...

  7. MongoDB 常用查询语法

    一.查询 find方法 db.collection_name.find(); 查询所有的结果: select * from users; db.users.find(); 指定返回那些列(键): se ...

  8. mongodb driver c#语法

    Definitions and BuildersThe driver has introduced a number of types related to the specification of ...

  9. mongodb 的基本函数语法封装

    //这个模块里面封装了所有对数据库的常用操作 var MongoClient = require('mongodb').MongoClient; var config = require(" ...

随机推荐

  1. python3调用zabbix api

    前言 今天写了一个zabbix api,这里整理一下,过程中自己也学习了一些东西. 需求 我们需要查一个文件内容如下: cat /ops/flume_hosts node1 node2 需要把这个文件 ...

  2. C/C++ 的宏中#和##的作用和展开

    C/C++ 的宏中: (1) # 的功能是将其后面的宏参数进行字符串化操作,简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号. 也就是说: #define __TO_STRING_IM ...

  3. R语言-编写自定义函数 ZZ

    一.函数构造器 每一个R函数都包括三个部分:函数名,程序主体以及参数集合,在编写自定义R函数时,需要将三个部分各自储存在一个R对象中.这里需要使用function函数,形如: my_function& ...

  4. NET Core微服务之路:简单谈谈对ELK,Splunk,Exceptionless统一日志收集中心的心得体会

    前言 日志,一直以来都是开发人员和运维人员最关心的问题.开发人员可通过日志记录来协助问题定位,运维人员可通过日志发现系统隐患,故障等定位问题.如果你的系统中没有日志,就像一个断了线的风筝,你永远不知道 ...

  5. ssh命令-使用密钥文件进行登陆

    在win上面可以使用XSHELL来登录类似于阿里云这样的安全服务器,在ubuntu上面就可以使用系统自带的命令工具来连接 使用命令 ssh -i key.pem [server] 实例如下: ssh ...

  6. Http请求-get和post的区别

    GET和POST是HTTP请求的两种基本方法. 最直观的区别就是GET把参数包含在URL中,以?的方式来进行拼接,POST通过request body传递参数.并且GET请求在URL中传送的参数是有长 ...

  7. [每天解决一问题系列 - 0010] ADB Not Responding - Android Studio

    问题描述: 最近安装了Android Studio v1.0,运行的时候老是这个错误 解决方案: 网上有人说是已经有adb的进程在运行,可是打开任务管理器,找不到对应的adb 进程. 无奈之下,想到a ...

  8. Centos 7 安装 rabbitmq

    1.安装erlang rabbitmq 官方下载地址 "http://www.rabbitmq.com/download.html" ,选择"RHEL, CentOS, ...

  9. 使用Jexus服务器运行Asp.Net Core2.0程序

    前段时间写了篇关于.net core跨平台部署的文章.https://my.oschina.net/lichaoqiang/blog/1861977 主要讲述了,利用Nginx+CentOS+Supe ...

  10. 从零开始学 Web 之 JavaScript(五)面向对象

    大家好,这里是「 Daotin的梦呓 」从零开始学 Web 系列教程.此文首发于「 Daotin的梦呓 」公众号,欢迎大家订阅关注.在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识 ...