下载 npm i mongoose -s 连接数据库 const mongoose = require("mongoose"); mongoose.connect(dbURL); const db =...Decimal128 Map 约束能用对象的方法描述数据类型 是否必须 是否重复 默认值 等,如下定义了一个用户表结构 注意:如果定义表结构时没有定义_id,mongoose会自己添加一个该字段...默认没有可以不写 }, { timestamps: true, //!...添加`createdAt updatedAt`创建时间和更新时间两个字段 } ); 如果在定义了结构后需要添加新字段,在实例上使用add()方法 创建表model 通过mongoose.model...Documents,向数据库中查找到的也是这种类型数据 const user = new User(userData); 保存save 获得具体的表后只需要调用Model.prototype.save
在 mongoose 中有效的 SchemaTypes 有: String Number Date Buffer Boolean Mixed ObjectId Array Decimal128 Map...,完整的连接选项看这里 bufferCommands:这是 mongoose 中一个特殊的选项(不传递给 MongoDB 驱动),它可以禁用 mongoose 的缓冲机制。...而不是等待重新连接 bufferMaxEntries: 0, connectTimeoutMS: 10000, // 10s后放弃重新连接 socketTimeoutMS: 45000, // 在45s不活跃后关闭...mul将字段值乘以指定数量unset删除指定字段,数组中的值删后改为 null。...position修饰 push 操作符以指定要添加的元素在数组中的位置。slice修饰 push 操作符以限制更新后的数组的大小。
以下所有操作都是使用的 mongoose ,另外 schema 和 model 定义这些无关紧要的部分统统省略了,无需深究代码的细节处。...需求 ---- 跨表循环遍历查询:从第一个表中查询所有匹配的数据,结果为 doc ,数组形式。...第三阶段:算了不绕弯子了。...你肯定想问,上面两个阶段我为什么还在用回掉函数这么老掉渣的写法而不是 promise 呢,因为在 promise 里是不会有类似于 for 、map 这种循环遍历的,涉及到这种操作,应该用 promise.all...结语 ---- 第二阶段的同步阻塞是很容易忽略和想当然的地方,第三阶段当我们要在 promise 中使用类似于 for 、map 这种循环时,其实应用使用的是 promise.all,另外如果你写出了
同时它也是一个对象数据库,没有表、行等概念,也没有固定的模式和结构,所有的数据以文档的形式存储(文档,就是一个关联数组式的对象,它的内部由属性组成,一个属性对应的值可能是一个数、字符串、日期、数组,甚至是一个嵌套的文档...一个属性对应的值可能是一个数、字符串、日期、数组,甚至是一个嵌套的文档。)...test1集合,然后在保存数据。...Entity简述 Entity —— 由Model创建的实体,使用save方法保存数据,Model和Entity都有能影响数据库的操作,但Model比Entity更具操作性。...创建集合 基于前面的内容,接下来我们就开始学习对数据的具体操作了,下面是关于一些基础数据的定义,相信对于你来说已经不陌生了,请在仔细温习一遍吧!
(即可以重复添加) // $addToSet 向数组中添加一个新元素,如果数组中已经存在了该元素,则不会添加(即不可以重复添加) db.users.update({username: "tangseng.../地址", {useMongoClient: true}); 地址例子:mongodb://127.0.0.1:27017/mg_test 如果端口号是默认端口号,则可以省略不写。...只需要连接一次,连接一次成功后,除非项目停止服务器关闭,否则连接一般不会断开。因为 MongoDB 数据库没有事务控制。...err) { console.log("保存成功~~~"); } }); StuModel.findOne({}, function(err, doc) { if (!... 对象 // Map map = gson.fromJson(json, Map.class); // System.out.println(map); // {name
②调用实例对象下的save方法将数据保存到数据库中。...new Course({ name: 'node.js', author: 'xc-dh', isPublished: true }); // 调用实例对象下的save方法将数据保存到数据库中...find()方法 返回一组文档 // 根据条件查找文档(条件为空则查找所有文档) Course.find().then(result => console.log(result)) // 返回文档集合(数组形式...({ title: { type: String, // 必传字段,不传就会报错 required: [true, '请传入文章标题'], .../ 获取错误提示信息 .catch((error) => { // 获取错误信息对象 const err = error.errors; // 循环错误信息对象
()连接MongoDB,默认端口27017 操作缓存 就是说不必等待上面的connect连接成功后,就可以使用创建的 Mongoose models 禁用缓存,要修改 bufferCommands配置...不这么做你可能会经常 收到看似毫无原因的 “connection closed” 错误。...Mongoose子文档有两种不同的概念:子文档数组和单个嵌套子文档 const chidlSchema = new Schema({name:String}) const parentSchema...= new Schema({ children:[childSchema], child:childSchema }) 子文档与文档的区别是 子文档不能单独保存,他们会在他们的顶级文档保存时保存...所有储存在此的_id 都必须是 Story model 中的 document 的 _id 保存 refs 保存 refs 与保存普通属性一样,把_id的值赋给他就好了 const author
detail/_id.vue' }, ] } 更多路由配置去官网查看 asyncData 和 fetch asyncData 此方法在加载(渲染)组件(页面组件,即pages文件夹下的文件,不包含...signed: true, /** (boolean) signed or not (default true) */ store: new Redis() // 将session存入redis 不传...字段值可以包含其他文档,数组及文档数组。 ? 更多的mongodb学习资料。 安装mongodb可视化工具 下载链接 ? 安装过程就是选择对应的系统,下一步下一步… ?...mongoose Mongoose:一款为异步工作环境设计的 MongoDB 对象建模工具。...mongoose 获取内嵌数组的长度,有没有更好的办法,或者说是既能返回总数也能进行分页? 订单是在数据中库存了的,没有展示,收货地址也只有增加。这两处都可以扩展增删改查的功能。
有了这些,我们现在可以在 DB 中保存 Todo 并返回新增的 Todo 和更新后的 todos 数组。...FC (FC 代表函数组件),它接收 saveTodo() 方法为 props,该方法允许我们将数据保存到数据库。...然后,我们传递 ITodo 类型的数组给 useState 并且把它初始化为空数组。...如果 Todo 被成功保存,我们将更新数据,否则将会抛出错误。...main className='App'> My Todos {todos.map
②调用实例对象下的save方法将数据保存到数据库中。...new Course({ name: 'node.js', author: 'xc-dh', isPublished: true }); // 调用实例对象下的save方法将数据保存到数据库中...find()方法 返回一组文档 // 根据条件查找文档(条件为空则查找所有文档) Course.find().then(result => console.log(result)) // 返回文档集合(数组形式...({ title: { type: String, // 必传字段,不传就会报错 required: [true, '请传入文章标题'],.../ 获取错误提示信息 .catch((error) => { // 获取错误信息对象 const err = error.errors; // 循环错误信息对象
解压后改个自己喜欢的名字: ? 拷贝文件夹,点击前往文件夹: ? 在弹出的输入框中输入:/usr/local回车,如下: ? 将mongodb复制与此文件夹中。...用Command+S保存配置,关闭上面的.bash_profile编辑窗口。 然后在下图中输入 source .bash_profile 使配 置生效。...输入 mongod -version ,回车后如果看到下面的版本号则说明mongod已经成功安装到了Mac上。 ?...const MongoClient = require("mongodb").MongoClient; class Mongodb { constructor(conf) { // 保存...mongodb.col('fruits') // 删除已存在 await col.deleteMany() const data = new Array(100).fill().map
signed: true, /\*\* (boolean) signed or not (default true) \*/ store: new Redis() // 将session存入redis 不传...字段值可以包含其他文档,数组及文档数组。 [crud-annotated-document.png] 更多的mongodb学习资料。...mongoose Mongoose:一款为异步工作环境设计的 MongoDB 对象建模工具。...ctx.isAuthenticated()) { ctx.body = { status: 200, msg: '退出登录' } } else {...mongoose 获取内嵌数组的长度,有没有更好的办法,或者说是既能返回总数也能进行分页? mongodb我也是现学现卖,查询语句写的可能不是最优的,仅作参考。
无状态(Stateless) 所有用户会话信息都保存在客户端。每次请求必须包括所有信息,不能依赖上下文信息。服务端不用保存会话信息,提升了简单性、可靠性、可见性。...:除非被清除,否则永久保存 工作原理 客户端带着用户名和密码去访问/login 接口,服务器端收到后校验用户名和密码,校验正确就会在服务器端存储一个 sessionId 和 session 的映射关系。...这两者的组合没什么问题,不过 koa-multer 和 koa-route(注意不是 koa-router) 存在不兼容的问题。...let TYPE_MAP = Parameter.TYPE_MAP = { number: checkNumber, int: checkInt, integer: checkInt,...安装 mongoose npm install mongoose -S 连接及配置 const mongoose = require("mongoose"); mongoose.connect(
element-ui:不造轮子,有现成的优秀的vue组件库当然要用起来。没有的自己再封装一些就可以了。...为大家附上 Vue 官方文档:cn.vuejs.org/v2/api/#is 画板元素渲染 编辑画板只需要循环遍历pages[i].elements数组,将里面的元素组件JSON数据取出,通过动态组件渲染出各个组件...数据存在元素JSON对象animations数组里。 选择面板hover预览动画 ?...页面加载后执行。这里也可以考虑mixins方式混入到页面或者组件,可根据业务需求自行扩展,都是可以实现的。...创建配置文件 根目录下新建config文件夹,新建mongo.js // config/mongo.js const mongoose = require('mongoose').set
const map = new Map([ // 你可以通过二维数组定义 Map。...与Object.keys()不同,Map#keys() 函数返回一个 iterator 而不是数组。这意味着迭代 map 键的最简单方法是使用 for/of 循环。...将迭代器转换成数组的最简单方法是使用内置的 Array.from() 函数。...如果要在不设置 symbol 的情况下将数据与对象相关联,映射还允许你存储对象键,这会很有用。...Map 在开源 JavaScript 中仍然很少见,我唯一见过的重要用例子是 Mongoose's map type 。但是 map 值得去取代 JSON ,因为它避免了原型污染的风险。
初始化一条数据 如果对mongodb,mongoose没有基础的了解,建议看一看mongoose深入浅出 ,mongoose基础操作 // controllers/student.js const.../model/student'); var mongoose = require('mongoose'); var Schema = mongoose.Schema; var student = new...更多的可以看看我项目中的实际代码都在server/controllers下面 关联集合的新增 在系统中,教师可以增加试卷,这个时候我就不知道该怎么保存前台传过来的数据。...怎么才能让试卷、教师、问题关联起来啊,ref存的是_id,然而这些新增的数据,是保存之后才有_id的。...... }else { if(doc1){ updateQuestion.forEach((item,index)=>{ // 循环更新题目
一、原生js forEach()和map()遍历 共同点: 1.都是循环遍历数组中的每一项。...退出循环。...如果使用 return 的话也只会退出当前那次循环的函数,循环还是会继续执行。如果想用 break 关键字,可以用原生的 for 循环。...map() 则不能退出。 2.$.map() 有返回值,可以return 出来。.map()里面的匿名函数支持2个参数和.each()里的参数位置相反:数组中的当前项n,当前项的索引i。...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
,删除后不退出 使用增强for循环是,如果删除后继续向下循环则会报java.util.ConcurrentModificationException /** * 使用增强for循环是,如果删除后继续向下循环则会报...我们使用逆向遍历的方式可以得到正确的结果 /** * 逆向循环,是正确的 * 1-->2-->3-->4 * 逆向循环时,倒数第一个元素满足条件被删除时,i--后,原数组的倒数第二个变成了新数组的倒数第一个元素...* 同理倒数第二个元素满足条件被删除时,i--后,原数组的倒数第三个变成了新数组的倒数第二个元素 * i= size-3指向新数组的倒数第二个元素,也没有漏掉 * * @param list *...break 使用增强for循环,删除元素后,立即跳出,则正常退出,但缺点是不能向后继续循环了。.../** * 删除元素后,立即跳出,则正常退出,但不能向后继续循环了 * * @param list * @param element * @return */ public static List
在三台机器都启动好后,我们来到 mongo1 机器。 连接 mongodb ....1567683075113.jpg 退出我们的主节点连接,连接复制节点。 ./bin/mongo mongo2:8411 ?...(也可以直接kill,但是推荐安全退出) ....1567686047066.jpg 我们看到通过不验证的方式登录已经无法查看信息了。 下面我们用认证方式来进行登录。 ....退出登录,使用集群管理员登录。 .
而非关系型数据库以键值对 (key-value) 存储,它的结构不固定,每一条记录可以有不一样的键,每条记录可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。...注册地址,教程可以参考这里 另一种是安装到本地(我的是windows10,本地快啊),直接安装 msi,启动后直接连接,大家可以自行网上搜索安装。...下载地址 4 Koa + Mongodb 操作 4.1 安装链接 npm i mongoose -Sconst mongoose = require('mongoose') // 默认 27017 端口...= require('mongoose') const { Schema, model } = mongoose // 通过 schema 设计出表结构,简单结构复杂结构都可以,每一条自动创建 _...// 删除用户 async delete(ctx) { const user = await User.findByIdAndRemove(ctx.params.id) // 删除后,
领取专属 10元无门槛券
手把手带您无忧上云