在《FreeSWITCH权威指南》中,我们曾讲过一个在同一台电脑上启动多个FreeSWITCH实例的例子。...当时所有实例都使用同一个IP,下面,我们使用另一种方式实现,每个FreeSWITCH使用一个IP。 在此,我们拟准备三个FreeSWITCH环境。...以下操作在Mac上进行,在Linux上的操作也类似。 首先找到Mac当前的IP 192.168.3.119 。...在当前网卡上再设置两个静态IP,通过别名方式实现(在Linux上可以使用eth0:1虚拟网卡实现): sudo ifconfig en1 inet 192.168.3.28 netmask 255.255.255.255... 在fs28
生成公私钥文件 执行以下命令 $ ssh-keygen -t rsa -C user_name1@163.com 说明:如下,执行命令后,会提示输入要保存key的文件路径,密码(Enter passphrase...参数说明: -t要生成的秘钥的类型 -c 用于识别这个秘钥的注释 如上图,在指定目录下(例中为C:\Users\cassmall\.ssh)生成公私钥文件 ? 5....在Gitee网站上添加公钥 用户1身份登录Gitee网站,打开id_rsa.pub公钥文件,复制内容到 Gitee.com –>设置 ->安全设置-SSH公钥,如下操作 ?...重复步骤4-5,为第其它Git用户进行公钥配置 注意:为第二个用户生成公私钥时,得显示指定私钥的文件路径(例中为/c/Users/cassmall/.ssh/id_rsa2),直接回车默认会覆盖第一个用户的文件...2、这里TortoiseGitPlink,ssh.exe路径分别随TortoiseGit,Git都安装而异 12. 验证TortoiseGit是否可用 ?
本文源自工作中的一个问题,在使用 Mongoose 做关联查询时发现使用 populate() 方法不能直接关联非 _id 之外的其它字段,在网上搜索时这块的解决方案也并不是很多,在经过一番查阅、测试之后...引用模型是一种规范化的数据模型,通过主外键的方式来关联多个文档之间的引用关系,减少了数据的冗余,在使用这种数据模型中就要用到关联查询,也就是本文我们要讲解的重点。...创建一个 aggregateTest.js 重点在于 $lookup 对象,代码如下所示: $lookup.from: 在同一个数据库中指定要 Join 的集合的名称。...Virtual 和 populate 实现 Mongoose 的 populate 方法默认情况下是指向的要关联的集合的 _id 字段,并且在 populate 方法里无法更改的,但是在 Mongoose...另外一种是 Mongoose 提供的 populate 方法,这种方式写起来,代码会更简洁些,这里需要注意如果关联的字段是非 _id 字段,一定要在 Schema 中设置虚拟值填充,否则 populate
前言 想要在同一设备上运行多个不同的操作系统和应用程序,实现更高效的资源利用吗?...通过本文,您可以轻松掌握在群晖NAS上安装虚拟机的方法,以及使用Virtual Machine Manager进行虚拟机管理和网络设置的技巧。...步骤2:下载Virtual Machine Manager Virtual Machine Manager(简称VMM)是一款由Synology开发的虚拟机管理软件,它可以帮助您在群晖NAS上安装、配置和管理虚拟机...在VMM中,单击左侧导航栏中的“网络”选项卡,然后单击“创建”。在弹出窗口中,输入名称和描述,选择适当的IP地址和子网掩码,然后单击“应用”。 步骤4:创建虚拟机 在VMM中创建虚拟机非常简单。...但是,本文提供的教程和流程应该可以帮助您入门,快速掌握群晖NAS上安装虚拟机的方法。
定义一个具有给定名称的虚拟属性,该名称可以获取/设置这个路径 索引 你可以用 schema 类型选项声明 MongoDB 的索引。 index: 布尔值,是否在属性中定义一个索引。...在 mongoose 中有两种指定方式,字符串指定和对象形式指定。 字符串指定时在排除的字段前加 - 号,只写字段名的是包含。...ref 选项告诉 Mongoose 在使用 populate() 填充的时候使用哪个 Model。...ref 选项告诉 Mongoose 在填充的时候使用 User model。所有储存在 answerer 中的 _id 都必须是 User model 中 document 的 _id。...返回字段选择 如果只需要填充 document 中一部分字段,可给 populate() 传入第二个参数,参数形式即 返回字段字符串,同 Query.prototype.select()。
,setter可以很方便的分解一个值到多个字段。...schema2 = new Schema({ test: { type: String } // `test` is a path of type string }); 除了type属性,还可以对这个字段路径指定其它属性...Populate 可以自动替换 document 中的指定字段,替换内容从其他 collection 获取,我们填充(populate)单个或者多个 document、单个或者多个对象,甚至是 query...ObjectID 数组,ref 选项告诉mongoose 在填充的时候使用哪个 model,上面的例子就是指 Story 的 model。...它允许你在相同的底层MongoDb collection上使用部分重叠的 schema 建立多个 model。
一、Node.js安装 1.解压 2.创建文件夹 解压路径下,创建两个文件夹 node_global:全局安装位置 node_cache:缓存 3.配置 配置环境变量 在path路径中添加环境变量...测试1 cmd执行命令: node -v npm -v 配置全局安装位置,缓存路径 cmd下输入两个命令: npm config set prefix "global文件夹的全路径" npm config...Collection中包含文档 Document文档是BSON 同一个Collection中可以有多个Document,多个Document的结构可以不一样。...Schema:模式对象 定义并且数据库中的文档结构,集合的结构,保证同一个集合中所有的文档结构是一致的 Model:模型对象 表示集合,相当于数据库中的Collection Document:文档对象...相当于数据库中的Document,表示一个具体的文档 顺序: Schema -> Model -> Document 四、使用 Mongoose在安装会自动安装驱动。
一、Node.js安装 1.解压 2.创建文件夹 解压路径下,创建两个文件夹 node_global:全局安装位置 node_cache:缓存 3.配置 配置环境变量 在path路径中添加环境变量 测试...1 cmd执行命令: node -v npm -v 配置全局安装位置,缓存路径 cmd下输入两个命令: npm config set prefix "global文件夹的全路径" npm config...Collection中包含文档 Document文档是BSON 同一个Collection中可以有多个Document,多个Document的结构可以不一样。...Schema:模式对象 定义并且数据库中的文档结构,集合的结构,保证同一个集合中所有的文档结构是一致的 Model:模型对象 表示集合,相当于数据库中的Collection Document...:文档对象 相当于数据库中的Document,表示一个具体的文档 顺序: Schema -> Model -> Document 四、使用 Mongoose在安装会自动安装驱动。
=> { console.log(err); console.log(result); }) 导入数据库操作 配置命令行工具mongoimport 环境变量中配置mongoimport路径.../ User.find().skip(2).limit(3).then(result => console.log(result)) 删除文档 findOneAndDelete 单个 如果更新条件匹配多个默认只更新第一个...deleteMany 多个 第一个条件为空 默认更新所有(慎用) // 引入mongoose第三方模块 用来操作数据库 const mongoose = require('mongoose'); //...('User', userSchema); // 查找到一条文档并且删除 // 返回删除的文档 // 如何查询条件匹配了多个文档 那么将会删除第一个匹配的文档 // User.findOneAndDelete...updateMany 多个 第一个条件为空 默认更新所有 // 引入mongoose第三方模块 用来操作数据库 const mongoose = require('mongoose'); // 数据库连接
mongod --dbpath=文件夹路径 4.启动mongodb, mongo 连接mongodb数据库的命令: 1.进入MongoDB下的bin文件夹下--cd 路径 2.命令--mongod...--dbpath=C:\Users\lx\Desktop\Node\MongoDB\DB 3.再打开一个cmd 4.重复第一步--cd 路径 5.命令--mongo const mongoose...= require('mongoose'); let db=mongoose.connect('mongodb://localhost/tenDB', {useNewUrlParser: true}...where 字段 = 值 例如: select * from student where gender = '女' 4.根据多个条件进行查找 select * from 表名 where 字段1 =...1 and 值2 例如: select * from student where age not between 24 and 25 7.根据多个条件中的某个条件, 进行查找 select * from
例如在 Android 或 iOS 客户端上,发版升级了一个很爆炸的功能,同一个API上可能为了支持这个功能而多吐一些数据。但是对于未升级的客户端来说,这些新数据是没有意义的,也造成了一定的资源浪费。...需要注意的是,在标量上使用不能使用选择集这种操作,因为它已经是最后一层了。 ?...GraphQL Server 在前面的 REST 举例中,我们请求多个资源有多个 API 端点。...由于该接口中的字段是所有实现了该接口的类型所共有的,在请求体上可以直接使用。...而对于特定类型上的其他非共有字段,例如Video中的performers,直接选取是会有问题的,因为searchMedia在返回的数据中类型可能是所有实现了该接口的类型,而在 Song类型中就没有performers
实际在数据库中产生的集合名为courses 2.创建文档 创建文档实际上就是向集合中插入数据。 方法1 分为两步: ①创建集合实例。 ②调用实例对象下的save方法将数据保存到数据库中。...在项目根目录下输入以下命令导入 mongoimport -d 数据库名称 -c 集合名称 --file 要导入的数据文件 ?...字段前加上-表示不查询此字段 // User.find().select('name age -_id').then(result => { // console.log(result);...User.find().skip(2).limit(3).then(result => { console.log(result) }) 5.删除文档 // 删除单个文档 如果条件包含多个文档...验证 在创建集合规则时,可以设置当前字段的验证规则,验证失败则插入失败。
在弹出的输入框中输入:/usr/local回车,如下: ? 将mongodb复制与此文件夹中。...输入 mongod -version ,回车后如果看到下面的版本号则说明mongod已经成功安装到了Mac上。 ?...Tip:MongoDB常用命令: 数据库数据文件路径 mogond--dbpath $dbpath....:$set,$unset,$setOnInsert,$rename,$inc,$min,$max,$mul // 更新多个字段 await fruitsColl.updateOne( { name: "...Keystone在官网上声称:在Node.js中,用Keystone搭建数据驱动的网站、应用程序和API是最容易的。
准备工作 let mongoose = require("mongoose"); let connection = require("....updateMany同理如果找到多条记录,则更新所有匹配的记录 删除 删除是艰巨的任务,毕竟删库跑路一直都备受关注,所以在使用的时候一定要小心☠。 默认的情况下remove删除所有匹配的记录。...}); console.log(score); })() image.png 我们在上面的准备工作里创建了一个UserScheme集合结构,在这里我们又创建ScoreSchema的表结构,在ScoreSchema...).populate('uid'); console.log(score); })("5f22712e78f5d73c7cae4b2f") image.png 上图使用了populate是填充的意思...就是把一个外键字段 从一个ObjectId变成另外一个字段来实现联表查询。
事实上业务处理仍然离不开前端。而且前端的工作量是大大多于后端的。.../utils/mongoose' const fileSchema = new mongoose.Schema({ type :String , // 保留字段,文件分类 title...:String , // 文件名称 size:Number , // 保留字段,文件大小 resource_url :String , // 文件在项目服务器的存储路径 cover_url...:String , // 封面文件在项目服务器的存储路径 lrc :String , // 文件在项目服务器的存储路径 singer:String,//歌手 createAt:...Audio", fileSchema) 上传的文件操作 作为网站用户总是觉得,这么多东西一个个传实,对于开发来说,重复地写同一个逻辑最烦了。
/assets/css/mixins.less'] }, 官网说的:warning: You cannot use path aliases here (~ and @),你需要使用相对或绝对路径...fetch 该方法用于渲染页面(页面组件加载前被调用【服务端或切换至目标路由之前】)前填充应用的状态树(store)数据,与asyncData方法类似,不同的是它不会设置组件的数据。...–简而言之就是fetch 和 asyncData 在组件上不能用。 Vuex ⚠️在nuxt中,vuex需要导出一个方法。...Schema 可以定义每个文档中存储的字段,及字段的验证要求和默认值。 mongoose.model() 方法将模式“编译”为模型。模型就可以用来查找、创建、更新和删除特定类型的对象。...这些文档包含 Schema 模型定义的字段名/模式类型。
实际在数据库中产生的集合名为courses 1.创建文档 创建文档实际上就是向集合中插入数据。 方法1 分为两步: ①创建集合实例。 ②调用实例对象下的save方法将数据保存到数据库中。...console.log(result)).catch(err => console.log(err)); 3.mongoDB数据库导入数据 找到mongodb数据库的安装目录,将安装目录下的bin目录放置在环境变量中...字段前加上-表示不查询此字段 // User.find().select('name age -_id').then(result => { // console.log(result);...User.find().skip(2).limit(3).then(result => { console.log(result) }) 5.删除文档 // 删除单个文档 如果条件包含多个文档...验证 在创建集合规则时,可以设置当前字段的验证规则,验证失败则插入失败。
• 如果我们不想使用 mongodb 提供的默认数据库路径和端口,该如何做呢?...答:在控制台启动 mongodb 时,可以指定路径和端口 mongod --dbpath 数据库路径 --port 端口号 示例:mongod --dbpath C:\Users\bruce\Desktop...;-1 表示降序显示该字段的数据,0 表示不显示该字段的数据。...并且可以对 connection 对象上的一些事件进行监听,来获悉数据库连接的开始与端开。比如,可以通过 open 和 close 事件来监控连接的打开和关闭。...4.5 Schema--模式对象(约束对象) 使用 Mongoose 你必须经常定义模式。 模式为集合中的文档定义字段和字段类型。
下载 npm i mongoose -s 连接数据库 const mongoose = require("mongoose"); mongoose.connect(dbURL); const db =...会自己添加一个该字段,该字段不会重复,类型为ObjectId,通过findById()查询 const userSachem = new mongoose.Schema( { name...添加`createdAt updatedAt`创建时间和更新时间两个字段 } ); 如果在定义了结构后需要添加新字段,在实例上使用add()方法 创建表model 通过mongoose.model...("User", userSechem); ---- 通过上面的操作就获得了表的构造函数,接下来就可以向里面进行增删改查了 增 有三种方法在表内增加数据: 通过实例化数据: 创建表数据实例化model...该方法可以接收多个插入数据,最后的回调函数参数根据数据量决定 该方法支持两种调用: 错误优先的回调 async await const users = await User.create(
配置环境变量 我的电脑 -> 右键属性 -> 高级系统设置 -> 环境变量 -> 系统环境变量 -> 找到 Path 双击Path -> 在弹窗内添加mongodb安装目录D:\Project\MongoDB...数据库(database) 数据库是一个仓库,在仓库中可以存放多个集合 集合(collection) 集合类似于数组,在集合中可以存放多个文档 文档(document) 数据库中的最小单位,存储和操作的内容都是文档...字段 文档中的一条数据,属性名就是字段名 数据库和集合都不需要手动创建 当我们创建文档时,如果文档所在的集合或数据库不存在会自动创建 7 安装可视化工具 下载地址:https://www.mongodbmanager.com....drop() 删除集合 db.dropDatabase() 删除数据库 数据库中数据一般不会真正的删除,所以删除的方法很少调用 一般都是单独添加一个字段,表示数据是否删除 这种删除只是程序上的删除...多对多(many to many) 分类 - 商品 老师 - 学生 添加字段值为数组 11 插件操作数据库 大部分使用程序来完成数据库操作 Mongoose 让我们可以通过 Node 操作 MongoDB
领取专属 10元无门槛券
手把手带您无忧上云