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 ...
随机推荐
- 码云转移至阿里云Code记录
用起来还是挺简单的,跟码云差不多,但关键是企业私有项目成员人数没有限制!码云限制5人(免费) 注意两点: 1.导入仓库链接的时候,如果username是邮箱含@,要换成%40,不然这个项目直接报500 ...
- 3 Java 冒泡排序法
冒泡排序( Bubble Sort)是一种简单的排序算法.它重复访问要数列, 一次比较两个元素,如果他们的顺序错误就把交换过来.访问数列工作是 一次比较两个元素,如果他们的顺序错误就把交换过来.访问数 ...
- echarts热力地图
<!DOCTYPE HTML> <html lang="en" xmlns:th="http://www.w3.org/1999/xhtml" ...
- lamp 环境利用compser安装tp5
1.安装compser,这个可以去百度命令 2.cd到根目录 3.composer create-project --prefer-dist topthink/think tp(tp可以随意命名) 4 ...
- LC 959. Regions Cut By Slashes
In a N x N grid composed of 1 x 1 squares, each 1 x 1 square consists of a /, \, or blank space. Th ...
- Python获取两个文件的交集、并集、差集
题记:朋友在处理数据时,需要解决这方面的问题,所以利用她给的代码,自己重新梳理了下,并成功运行. 代码如下: # coding:utf-8 s1 = set(open(r'C:\\Users\\yan ...
- .Net Core Linux部署
.Net Core是微软最新的开源框架跨平台框架 官网文档 .Net Core相关发布指令,以及发布RId便于查看 RID链接 .Net Core要想发布到Linux有俩种方案,分别是依赖框架的部署( ...
- python programming作业11 Qt designer (打地鼠,不是很完美)
不导包的代码 from PyQt5 import QtCore, QtGui, QtWidgets import sys from PyQt5.QtWidgets import QApplicati ...
- git merge --squash 选项合并commit操作实例
参考: [转] git merge 将多个commit合并为一条之--squash 选项 git checkout master git pull origin master # 本地先拉取最新的m ...
- 【转】jstat命令查看jvm的GC情况 (以Linux为例)
[From]https://www.cnblogs.com/yjd_hycf_space/p/7755633.html jstat命令可以查看堆内存各部分的使用量,以及加载类的数量.命令的格式如下: ...