一、函数返回值不能是 " 局部变量 " 的引用或指针 1、引用通常做右值 之前使用 引用 时 , 都是作为 右值 使用 , 引用只在 声明 的 同时 进行初始化时 , 才作为左值 , // 定义变量 a...2、函数返回值特点 函数 的 返回值 几乎很少是 引用 或 指针 ; 函数 的 计算结果 经常是借用 参数中的 地址 / 引用 进行返回的 , 函数 的 返回值 一般返回一个 int 类型的值 , 如果...int 为 0 就是成功 , int 为其它数值 , 就是错误码 ; 3、函数内的 " 局部变量 " 的引用或指针做函数返回值无意义 如果 想要 使用 引用 或 指针 作 函数的计算结果 , 一般都是将..." 引用或指针做函数返回值测试 ---- 下面的 int& getNum2() 函数 , 返回一个引用 , 该 引用 是 局部变量 的引用 ; 下面的 int* getNum3() 函数 , 返回一个指针..., 该 指针 是 局部变量 的指针 ; 上述两个函数是无意义的 , 获取到 函数 返回的 " 局部变量 " 的 引用 或 指针 , 然后获取地址 , 发现获取的都是随机值 , 都是无意义的值 ; num21
promise对象,说明也支持异步函数的语法 1.3 mongoDB数据库导入数据 找到mongodb数据库的安装目录,将安装目录下的bin目录放置在环境变量中。...1.5 删除文档 删除单个文档 查找到一条文档并且删除 返回删除的文档 如何查询条件匹配了多个文档那么将会删除第一个匹配的文档 User.findOneAndDelete({_id: '5c09f1e5aeb04b22f8460965...mongoose验证 在创建集合规则时,可以设置当前字段的验证规则,验证失败就则输入插入失败。...'], trim: [true, '去除标题两侧的空格'], minlength: 2, // 最小不能少于两个字符 maxlength: 5 // 最多不能超过...anthor: { type: String, validate: { validator: v => { //返回布尔值
1.1 LINQ VS 循环处理 在我刚工作时候,对于集合对象的处理一般是采用循环这个集合处理,在处理实值类型上这样做效率还行,但是如果集合内是引用类型,使用LINQ就方便的多,例如一个程序要计算课程的总分和平均分...: 1.必须是静态方法,且名称不能和现有的方法冲突 2.参数至少有一个,且类型为扩展类型,格式是"this[要扩展的类名称][参数名称]",若有两个以上的参数,则扩展类型放在第一个不能设置默认值...(2) 匿名类型只能有属性,不可以有方法、事件、或字段等。 (3) 两个匿名类型对象的相等,必须要两个对象的属性值都相等才行。 ...,其变量类型声明会使用var类型表示,var类型代表编译器腿短这个变量的类型,在LINQ中复杂查询如果是嵌套的错误率较高,所以用var替代。...var的限制如下: (1)使用var类型赋值语句时右边不能为null,否则编译器无法推断其类型。 (2)var类型只能用于局部变量的声明,不能用于全局变量,类层变量或者是函数的返回值。
5、mongoose验证 在创建集合规则时,可以设置当前字段的验证规则,验证失败就则输入插入失败。...minlength: [2, '文章长度不能小于2'], // 字符串的最大长度 maxlength: [5, '文章长度最大不能超过5'],...enum: { values: ['html', 'css', 'javascript', 'node.js'], message: '分类名称要在一定的范围内才可以...author: { type: String, validate: { validator: v => { // 返回布尔值...,例如文章信息和用户信息存储在不同集合中,但文章是某个用户发表的,要查询文章的所有信息包括发表用户,就需要用到集合关联。
默认返回当前集合中的第一条文档 // User.findOne({name: '李四'}).then(result => console.log(result)) // 查询用户集合中年龄字段大于20...字段值包含足球的文档 // User.find({hobbies: {$in: ['足球']}}).then(result => console.log(result)) // 选择要查询的字段 //...('User', userSchema); // 查找到一条文档并且删除 // 返回删除的文档 // 如何查询条件匹配了多个文档 那么将会删除第一个匹配的文档 // User.findOneAndDelete...2'], // // 字符串的最大长度 maxlength: [5, '文章长度最大不能超过5'], // // 去除字符串两边的空格 trim: true }, age: { type:...: { validator: v => { // 返回布尔值 // true 验证成功 // false 验证失败 // v 要验证的值 return v && v.length > 4 }
配置环境变量 我的电脑 -> 右键属性 -> 高级系统设置 -> 环境变量 -> 系统环境变量 -> 找到 Path 双击Path -> 在弹窗内添加mongodb安装目录D:\Project\MongoDB....find({}) 可以接受一个对象作为条件参数 {属性名1:值,属性名2:值} 查询属性是指定值的文档 db..findOne({}) 用来查询集合中符合条件的第一个文档 db....- 学生 添加字段值为数组 11 插件操作数据库 大部分使用程序来完成数据库操作 Mongoose 让我们可以通过 Node 操作 MongoDB 模板 Mongoose 是对象文档模型(ODM)库,对原生的模块进行了封装...查询结果结果会通过回调函数返回,参数必选,不传没有返回值 通过 find() 查询的结果,返回的对象就是 Document,文档对象 Document 对象是 Model 的实例 doc instanceof...(doc.get('age')); console.log(doc.age); // 设置属性值 doc.set('name', '张小三');
配置环境变量 我的电脑 -> 右键属性 -> 高级系统设置 -> 环境变量 -> 系统环境变量 -> 找到 Path 双击Path -> 在弹窗内添加mongodb安装目录D:\Project\MongoDB....find({}) 可以接受一个对象作为条件参数 {属性名1:值,属性名2:值} 查询属性是指定值的文档 db.....remove({条件}) 删除符合条件的所有文档,第二个参数为 true 只删除一个 条件必须设置,如果没有直接删除所有文档 db....查询结果结果会通过回调函数返回,参数必选,不传没有返回值 通过 find() 查询的结果,返回的对象就是 Document,文档对象 Document 对象是 Model 的实例 doc instanceof...(doc.get('age')); console.log(doc.age); // 设置属性值 doc.set('name', '张小三');
变量定义:在 GraphQL 中,声明一个变量使用符号开头,冒号后面紧跟着变量的传入类型。如果要使用变量,直接引用即可,例如上面的 movie 就可以改写成 movie(name: name)。...后者表示movies中返回的 Movie 元素不能为空,但 movies字段的返回是可以为空的。 你可能在请求体中注意到,genre 参数的值没有被双引号括起来,也不是任何内置类型。...在本例中,定义了一个Basic接口,Song以及Video类型都要实现该接口的字段。然后在search查询中返回该接口。 searchMedia查询返回一组Basic接口。...内联片段(Inline Fragment) 对接口或联合类型进行查询时,由于返回类型的不同导致选取的字段可能不同,此时需要通过内联片段的方式决定在特定类型下使用特定的选择集。...id 查询一遍得出结果,最终返回的数据就能符合 Schema 的定义了。
,将安装目录下的bin目录放置在环境变量中。...4.查询文档 find()方法 返回一组文档 // 根据条件查找文档(条件为空则查找所有文档) Course.find().then(result => console.log(result)) //...要修改的值}).then(result => console.log(result)) // 更新多个 User.updateMany({查询条件}, {要更改的值}).then(result => console.log...验证 在创建集合规则时,可以设置当前字段的验证规则,验证失败则插入失败。...,例如文章信息和用户信息存储在不同集合中,但文章是某个用户发表的 要查询文章的所有信息包括发表用户,就需要用到集合关联。
本文源自工作中的一个问题,在使用 Mongoose 做关联查询时发现使用 populate() 方法不能直接关联非 _id 之外的其它字段,在网上搜索时这块的解决方案也并不是很多,在经过一番查阅、测试之后...内嵌是把相关联的数据保存在同一个文档内,我们可以用对象或数组的形式来存储,这样好处是我们可以在一个单一操作内完成,可以发送较少的请求到数据库服务端,但是这种内嵌类型也是一种冗余的数据模型,会造成数据的重复...表示的要 Join 的集合的名称,同 $lookup.from justOne: 默认为 false 返回多条数据,如果设置为 true 就只会返回一条数据 AuthorSchema.virtual('...,发现没有效果,这里还要注意一点: 虚拟值默认不会被 toJSON() 或 toObject 输出。...另外一种是 Mongoose 提供的 populate 方法,这种方式写起来,代码会更简洁些,这里需要注意如果关联的字段是非 _id 字段,一定要在 Schema 中设置虚拟值填充,否则 populate
// 当渲染后缀为art的模板时 使用express-art-template app.engine('art', require('express-art-template')); // 设置模板存放目录...'art'); app.get('/', (req, res) => { // 渲染模板 res.render('index'); }); app.locals 对象 将变量设置到...将用户ID传递到当前页面 // 2.从数据库中查询当前用户信息 将用户信息展示到页面中 // 2.实现用户修改功能 // 1.指定表单的提交地址以及请求方式...(item => { // 判断当前循环项在不在用户的爱好数据组 let isHobby = user.hobbies.includes(...= require('mongoose'); // 数据库连接 27017是mongodb数据库的默认端口 mongoose.connect('mongodb://localhost/playground
,将安装目录下的bin目录放置在环境变量中。...在项目根目录下输入以下命令导入 mongoimport -d 数据库名称 -c 集合名称 --file 要导入的数据文件 4.查询文档 find()方法 返回一组文档 // 根据条件查找文档(条件为空则查找所有文档...要修改的值}).then(result => console.log(result)) // 更新多个 User.updateMany({查询条件}, {要更改的值}).then(result => console.log...验证 在创建集合规则时,可以设置当前字段的验证规则,验证失败则插入失败。...使用id对集合进行关联 使用populate方法进行关联集合查询 // 关联集合 const mongoose = require('mongoose'); // 连接数据库 mongoose.connect
事件方法:组件可以通过链式调用设置多个事件的响应逻辑,如跟随在Button后面的onClick。...[4] 声明式UI 创建组件 配置属性 配置事件 配置子组件 [5] 状态管理 状态变量:被状态装饰器装饰的变量,改变会引起UI的渲染更新。 常规变量:没有状态的变量,通常应用于辅助计算。...本地初始化的默认值在有父组件传值的情况下,会被覆盖。 初始化子节点:组件中状态变量可以传递给子组件,初始化子组件对应的状态变量。示例同上。 本地初始化:变量声明的时候赋值,作为初始化的默认值。...在声明式描述语句中开发者除了使用系统组件外,还可以使用渲染控制语句来辅助UI的构建,这些渲染控制语句包括控制组件是否显示的条件渲染语句,基于数组数据快速生成组件的循环渲染语句以及针对大数据量场景的数据懒加载语句...,则返回所有匹配的记录 res.json({ data: results, message: "查询成功!"
前言 在处理数据库查询时,分页是一个常见的需求。 尤其是在处理大量数据时,一次性返回所有结果可能会导致性能问题。 因此,我们需要使用分页查询来限制返回的结果数量。...foreach ...>: 这是MyBatis的循环语句,用于遍历集合或数组,并动态生成SQL的部分内容。...item="campStatus": 在每次循环中,当前的元素值会被赋值给名为campStatus的变量。...它表示我们要将当前循环中的campStatus变量的值插入到SQL查询中。jdbcType=VARCHAR指定了参数的类型,这里假设它是VARCHAR类型。...通过使用变量和适当的SQL语法,我们可以根据特定的条件动态地构建查询,从而返回满足我们需求的结果。 通过这种方式,我们可以灵活地构建和执行查询,以满足不同的需求。
可以在命令行输入命令“perl -v”来查看当前版本,运行结果如下所示: ⑷foreach控制结构 foreach是Perl对数组或列表进行处理的一种循环结构,其含义是从列表或数组中逐项取值赋值给控制变量...\n"; } 运行结果如下所示: 实际上,控制变量就是动态的列表或者数组,对控制变量的操作会改变列表或数组元素,这也是foreach的强大之处,而当循环结束之后,控制变量会被自动还原为循环之前的值,如果之前没有赋值...,但是在表达式中被调用的是返回值$fred或$barney!!...事实上,my私有变量设置不只是在子程序中,也可以是在if、while、foreach的语块中,事实上,在日常编程中最好对每个新变量都是用my声明,使其保持在自己所在的模块区域内,对Perl 5.10以上的版本尤为如此...\n"; 程序运行结果如下所示: ⑹return操作符 return操作符可以在子程序满足某一条件时立刻停止执行并返回某个值,这在涉及到元素筛选、查询等任务时非常有用。
注意:打开的命令行窗口不能关闭。 2.5 配置 MongoDB 的 windows 服务 将 MongoDB 设置为系统服务,可以自动在后台启动,不需要每次都手动启动。...//在查询时,可以在第二个参数的位置来设置查询结果的--即投影 db.emp.find({}, {ename: 1, _id: 0, sal: 1}); 第四章 Mongoose 4.1 Mongoose...err) { // console.log(doc); // 通过 find() 查询的结果,返回的对象就是 Document 对象或 Document 对象数组。 ...err) { console.log(count); } }); 4.8 Document--文档对象 通过 Model 对数据库进行查询时,会返回 Document 对象或...- 将 Document 对象转换为一个普通的 js 对象。转换为普通的 js 对象以后,所有的 Document 对象的方法或属性都不能使用了。
函数体:是专门用于实现特定功能的主体,由一条或多条语句组成。 返回值:在调用函数后若想得到处理结果,在函数体中可用 return 关键字返回。...2 变量的作用域 声明变量后就可以在任意位置使用该变量嘛?不是的。 函数内 var 关键字声明的变量,不能在函数外访问。...,而在这个过程中会为局部变量在(栈或堆)内存上分配相应的空间,以存储它们的值,然后在函数中使用这些变量,直到函数结束。...*/ // 获取数组中所有值的总和 var sum = 0; var numbers = [65, 44, 12, 4]; numbers.forEach(function (item) { sum...内层函数只能在外层函数作用域内执行,在内层函数执行的过程中,若需要引入某个变量,首先会在当前作用域中寻找,若未找到,则继续向上一层级的作用域中寻找,直到全局作用域,我们称这种链式的查询关系为作用域链。
/common/img/logo.png" alt=""> mongoose 操作mongodb的 npm i mongoose --save 就不一一列举所有的插件了(没有用vuex) 开发上的一些事...$axios.get('/goods/list').then()... // 不能忘了加上goods,也就是你在app.js中定义的一级路由 ......初始化一条数据 如果对mongodb,mongoose没有基础的了解,建议看一看mongoose深入浅出 ,mongoose基础操作 // controllers/student.js const...((item,index)=>{ // 循环更新题目,好像很傻的方法,可能有更好的办法 Question.update({"_id":item....}) }; md5加密 //student.js const crypto = require('crypto'); let mdHash = function(data){ // hash 的定义要写在这个方法内
default: 任意类型或函数,为路径设置一个默认的值。如果值是一个函数,则函数的返回值用作默认值。...字段(也称为查询“投影”),必须同时指定包含或同时指定排除,不能混合指定,_id除外。...查询结果: 返回数据的格式是 {} 对象形式。 有多个数据满足查询条件的,只返回第一条。 查询条件 conditions 为 {}、 null 或 undefined,将任意返回一条数据。...如果没有操作符或操作符不是 update 操作符,统一被视为 set 操作(mongoose 特有)字段相关操作符符号描述set设置字段值currentDate设置字段值为当前时间,可以是 Date 或时间戳格式...result 查询结果: 返回数据的格式是 {} 对象形式。 id 为 undefined 或 null,result 返回 null。 没符合查询条件的数据,result 返回 null。
配置环境变量 打开终端,输入 open-e.bash_profile(如果没有的话,先 cd~然后 touch.bash_profile创建后打开) 在打开的文件中加入 export PATH=${PATH...日志文件的路径 mongod--logpath $logpath 以追加的方式打开文件 mongod—logappend 将数据库服务放在后台运行) 脚本启动或配置文件启动 mongod—fork...等 // 按name字段分组,统计组内price总和 fruitsColl.aggregate([{ $group:{_id:"$name",total: {$sum:"$price"}}}]).toArray...也需要一个odm工具来方便更好的操作。而mongoose就是i 一个良好的工具。 mongoose是一个优雅的nodejs对象文档模型。它是由关系型数据库的思想去应用到非关系型数据库。...({ name: "苹果" }); console.log("查询结果:", r); // 6.更新,updateOne返回Query r = await
领取专属 10元无门槛券
手把手带您无忧上云