MongoDB v4.0 命令
MongoDB v4.0 命令
官方文档 > 点这里 <
操作系统库
#操作管理员库
use admin
#鉴权
db.auth("root","admin");
#用户查看(格式美化)
db.system.users.find().pretty();
#新增用户
db.createUser({
user: 'root1',
pwd: 'admin1',
roles: [ { role: "dbOwner", db: "yapi" }]
});
#更新用户信息/密码/权限
db.updateUser("root1",{
pwd: "admin2",
roles:
[{
role: "root",
db: "admin"
},{
role: "userAdminAnyDatabase",
db: "admin"
},{
role: "readWriteAnyDatabase",
db: "admin"
},{
role: "dbAdminAnyDatabase",
db: "admin"
}]})
#删除数据库所属用户
db.dropUser("root1");
操作自定义库
#操作自定义库
use persionalDB
#鉴权
db.auth("user","pwd");
#创建数据库所属用户
db.createUser({
user: 'username1',
pwd: 'password1',
roles: [ { role: "dbOwner", db: "yapi" }]
});
#更新用户信息/密码/权限
db.updateUser("username1",{
pwd: "NEW pass",
roles:
[{
role: "root",
db: "admin"
},{
role: "userAdminAnyDatabase",
db: "admin"
},{
role: "readWriteAnyDatabase",
db: "admin"
},{
role: "dbAdminAnyDatabase",
db: "admin"
}]});
#删除数据库所属用户
db.dropUser("username1");
1.0.0 基础操作 [collection]= 所查集合名
use [db_name];
db.[collection].insert({[title]:'[value]'});
eg:
db.hellocollction.insert({name:'hello'});
# 单个插入
db.inventory.insertOne(
{ item: "canvas",
qty: 100,
tags: ["cotton"],
size: {
h: 28,
w: 35.5,
uom: "cm"
}
}
)
# 批量插入
db.inventory.insertMany([
{ item: "journal", qty: 25, tags: ["blank", "red"], size: { h: 14, w: 21, uom: "cm" } },
{ item: "mat", qty: 85, tags: ["gray"], size: { h: 27.9, w: 35.5, uom: "cm" } },
{ item: "mousepad", qty: 25, tags: ["gel", "blue"], size: { h: 19, w: 22.85, uom: "cm" } }
])
1.1 >增<
- db.[collection].insertOne()/insertMany()

1.2 >查<
- db.[[collection]].find()

1.3 >改<
- db.[collection].updateOne()/updateMany()/replaceOne()

1.4 >删<
- db.collection.deleteOne()/deleteMany()

2.0 高级: 联表查询 Join
初始数据
db.product.insert({"_id":1,"productname":"商品1","price":15});
db.product.insert({"_id":2,"productname":"商品2","price":36});
db.order.insert({"_id":1,"pid":1,"ordername":"订单1","uid":1});
db.order.insert({"_id":2,"pid":2,"ordername":"订单2","uid":2});
db.order.insert({"_id":3,"pid":2,"ordername":"订单3","uid":2});
db.order.insert({"_id":4,"pid":1,"ordername":"订单4","uid":1});
db.user.insert({"_id":1,"username":1});
db.user.insert({"_id":2,"username":2});
db.product.find();
db.order.find();
db.user.find();
2.1
$lookup两表关联join
db.product.aggregate([
{
$lookup:
{
from: "order",
localField: "_id",
foreignField: "pid",
as: "inventory_docs"
}
}
]);
#结果:
{
"_id" : 1.0,
"productname" : "商品1",
"price" : 15.0,
"inventory_docs" : [
{
"_id" : 1.0,
"pid" : 1.0,
"ordername" : "订单1"
},
{
"_id" : 4.0,
"pid" : 1.0,
"ordername" : "订单4"
}
]
}
lookup 就是使用 aggregate 的 $lookup 属性,$lookup 操作需要一个四个参数的对象:
- localField:在输入文档中的查找字段
- from:需要连接的集合
- foreignField:需要在from集合中查找的字段
- as:输出的字段名字
2.2 $lookup 三表关联join
db.order.aggregate([
{
"lookup": {
"from": "product",
"localField": "pid",
"foreignField": "_id",
"as": "inventory_docs"
}
},{
"lookup": {
"from": "user",
"localField": "uid",
"foreignField": "_id",
"as": "user_docs"
}
}
]);
除了 $lookup,populate 也可以用来进行关联查询
MongoDB v4.0 命令的更多相关文章
- MongoDB 3.0.6 安装 增删改查
下载 安装包MSI http://yunpan.cn/cmhHdTPkXZRM2 访问密码 9b6c 上边提供的是 MongoDB 3.0.6 64Bit 的安装包 安装 如果不想直接安装在C盘.. ...
- MongoDB 3.0 新特性【转】
本文来自:http://www.open-open.com/lib/view/open1427078982824.html#_label3 更多信息见官网: http://docs.mongodb.o ...
- MongoDB 3.0 用户创建
摘要: MongoDB 3.0 安全权限访问控制,在添加用户上面3.0版本和之前的版本有很大的区别,这里就说明下3.0的添加用户的方法. 环境.测试: 在安装MongoDB之后,先关闭auth认证,进 ...
- mongodb与mysql命令对比
mongodb与mysql命令对比 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由数据库(database).集合(col ...
- IIS应用程序池添加ASP.NET v4.0
可能在安装.NET Framewrok 4.0之前,IIS就已经装好了,结果在IIS的应用程序池中只有.NET 2.0的Classic .NET AppPool和DefaultAppPool.在使用v ...
- 在 Ubuntu 14.04/15.04 上配置 Node JS v4.0.0
大家好,Node.JS 4.0 发布了,这个流行的服务器端 JS 平台合并了 Node.js 和 io.js 的代码,4.0 版就是这两个项目结合的产物——现在合并为一个代码库.这次最主要的变化是 N ...
- [译]MongoDB 3.0发布说明
原文来自:http://docs.mongodb.org/manual/release-notes/3.0/ 2015年3月3日 MongoDB 3.0现已可供使用.关键新特性包括支持WiredTig ...
- 生日小助手V4.0——迁移到Python3
生日小助手V4.0——迁移到Python3 生日小助手V4.0只支持Linux系统,依赖命令行软件lunar Ubuntu系统安装方法:1.安装lunarsudo apt-get install lu ...
- MongoDB 3.0安全权限访问控制(Windows版)
MongoDB 3.0安全权限访问控制(Windows版) 1.首先,不使用 –auth 参数,启动 mongoDB: mongod --dbpath "d:\mongodb\data\db ...
随机推荐
- 装机、做系统必备:秒懂MBR和GPT分区表____转载网络
装机.做系统必备:秒懂MBR和GPT分区表 科技美学 2016-10-17 16:36:23 阅读(3835) 评论(4) 很多网友询问MBR和GPT的问题,涉及到硬盘操作系统的安装,其实除了MBR和 ...
- Coding Rules
c语言按行读取的时候,注意用fgets可以读一行,但默认会把换行符也读进去,使用scanf("%s")却不会.
- 本地安装完oracle,plsql 连接不上
原因是本地装的oracle版本是12c,oracle客户端装的是11,所以连接不上,没有匹配的验证协议 客户端换成12,成功连接.
- js如何获取window.location.href跳转后查询字符串的值?
$("#worked_count").parent().attr("onClick","window.location.href='view/warn ...
- AIxoder插件安装及使用
参考:https://www.aixcoder.com/#/Download 右边有快捷导航,查看对应需要的问题 1.下载AIxcoder 2.安装并注册打开 3.给IDE安装 4.验证是否安装成 ...
- spring boot系列(五)spring boot 配置spring data jpa (查询方法)
接着上面spring boot系列(四)spring boot 配置spring data jpa 保存修改方法继续做查询的测试: 1 创建UserInfo实体类,代码和https://www.cnb ...
- python与正则
想了解正则的使用,请点击:正则表达式.每种编程语言有一些独特的匹配方式,python也不例外: 语法 含义 表达实例 完整匹配匹配的字符串 \A 仅匹配字符串开头 \Aabc abc \Z 仅匹配字符 ...
- vue项目中使用组件化开发
最近在使用vue-cli结合webpack打包工具开发一个后台管理系统,使用vue难免需要运用组件化思想,而这也正是vue的一大特点. 在之前做的vue项目中,稍微有一点组件化的思想,可能是对组件化不 ...
- axios在Vue中的简单应用(一)
1.安装axios: npm install --save axios vue-axios 2.安装qs: qs.stringify(data)可以解决data数据格式问题 npm install - ...
- django中聚合aggregate和annotate GROUP BY的使用方法
接触django已经很长时间了,但是使用QuerySet查询集的方式一直比较低端,只会使用filter/Q函数/exclude等方式来查询,数据量比较小的时候还可以,但是如果数据量很大,而且查询比较复 ...