首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Nuxt + Koa2 + Mongodb 手撸一个网上商城

模型使用 Schema 接口进行定义。 Schema 可以定义每个文档中存储的字段,及字段的验证要求和默认值。 mongoose.model() 方法将模式“编译”为模型。...模型就可以用来查找、创建、更新和删除特定类型的对象。 注:MongoDB 数据库中,每个模型都映射至一组文档。这些文档包含 Schema 模型定义的字段名/模式类型。...koa-router 服务端的路由,定义各个接口的请求方式以及返回的数据。...limit就表示限制返回的条数。...mongoose 获取内嵌数组的长度,有没有更好的办法,或者说是既能返回总数也能进行分页? 订单是在数据中库存了的,没有展示,收货地址也只有增加。这两处都可以扩展增删改查的功能。

7.9K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MongoDB增删改查操作

    实际在数据库中产生的集合名为courses 2.创建文档 创建文档实际上就是向集合中插入数据。 方法1 分为两步: ①创建集合实例。 ②调用实例对象下的save方法将数据保存到数据库中。...,将安装目录下的bin目录放置在环境变量中。...// 根据条件查找文档 Course.findOne({name: 'node.js基础'}).then(result => console.log(result)) // 返回文档 只返回一条,默认返回第一条...: 默认值 获取错误信息:error.errors['字段名称'].message // 验证规则可以跟两个参数,第二个参数表示自定义错误提示信息 const postSchema = new...,例如文章信息和用户信息存储在不同集合中,但文章是某个用户发表的 要查询文章的所有信息包括发表用户,就需要用到集合关联。

    6.5K20

    架构和数据库

    字段 文档中的一条数据,属性名就是字段名 数据库和集合都不需要手动创建 当我们创建文档时,如果文档所在的集合或数据库不存在会自动创建 7 安装可视化工具 下载地址:https://www.mongodbmanager.com....find({}).count() 查询所有结果的数量 修改集合中符合条件的文档 db..update({查询条件},{新对象},{配置}) 默认只修改一个 db....库,对原生的模块进行了封装,提供了更多的功能 Mongoose 优势 官方地址:http://www.mongoosejs.net/ 可以为文档创建一个模式结构(Schema) 可以对模型中的对象/文档进行验证...Schema(模式对象) 定义约束了数据库中的文档结构 Model Model 对象作为集合中的所有文档表示 相当于 MongoDB数据库中的集合collection Document 表示集合中的具体文档...查询结果结果会通过回调函数返回,参数必选,不传没有返回值 通过 find() 查询的结果,返回的对象就是 Document,文档对象 Document 对象是 Model 的实例 doc instanceof

    8010

    04_数据库

    ,存储和操作的内容都是文档 字段 文档中的一条数据,属性名就是字段名 数据库和集合都不需要手动创建 当我们创建文档时,如果文档所在的集合或数据库不存在会自动创建 7 安装可视化工具 下载地址...(ODM)库,对原生的模块进行了封装,提供了更多的功能 Mongoose 优势 官方地址:http://www.mongoosejs.net/ 可以为文档创建一个模式结构(Schema) 可以对模型中的对象...对象 Schema(模式对象) 定义约束了数据库中的文档结构 Model Model 对象作为集合中的所有文档表示 相当于 MongoDB数据库中的集合collection Document...表示集合中的具体文档 Schema 对象 const Schema = mongoose.Schema; // 创建 Schema(模式)对象 let stuSchema = new Schema...查询结果结果会通过回调函数返回,参数必选,不传没有返回值 通过 find() 查询的结果,返回的对象就是 Document,文档对象 Document 对象是 Model 的实例 doc instanceof

    7010

    Mongoose 实现关联查询和踩坑记录

    author.js 创建 model/author.js 定义作者的 Schema,代码中的 ref 表示要关联的 Model 是谁,在 Schema 定义好之后后面我会创建 Model const mongoose...$lookup.localFiled: 关联的源集合中的字段,本示例中是 Authors 表的 authorId 字段。...$lookup.foreignFiled: 被 Join 的集合的字段,本示例中是 Books 表的 bookId 字段。 $as: 别名,关联查询返回的这个结果起一个新的名称。...如果需要指定哪些字段返回,哪些需要过滤,可定义 $project 对象,关联查询的字段过滤可使用 别名.关联文档中的字段 进行指定。...另外一种是 Mongoose 提供的 populate 方法,这种方式写起来,代码会更简洁些,这里需要注意如果关联的字段是非 _id 字段,一定要在 Schema 中设置虚拟值填充,否则 populate

    26.5K20

    MongoDB增删改查操作

    实际在数据库中产生的集合名为courses 1.创建文档 创建文档实际上就是向集合中插入数据。 方法1 分为两步: ①创建集合实例。 ②调用实例对象下的save方法将数据保存到数据库中。...,将安装目录下的bin目录放置在环境变量中。...// 根据条件查找文档 Course.findOne({name: 'node.js基础'}).then(result => console.log(result)) // 返回文档 只返回一条,默认返回第一条...: 默认值 获取错误信息:error.errors['字段名称'].message // 验证规则可以跟两个参数,第二个参数表示自定义错误提示信息 const postSchema = new...,例如文章信息和用户信息存储在不同集合中,但文章是某个用户发表的 要查询文章的所有信息包括发表用户,就需要用到集合关联。

    6.2K10

    MongoDB数据库基本操作

    ('User', userSchema); // 查询用户集合中的所有文档 User.find().then(result => console.log(result)); // 通过_id字段查找文档...默认返回当前集合中的第一条文档 // User.findOne({name: '李四'}).then(result => console.log(result)) // 查询用户集合中年龄字段大于20...字段值包含足球的文档 // User.find({hobbies: {$in: ['足球']}}).then(result => console.log(result)) // 选择要查询的字段 //...('User', userSchema); // 找到要删除的文档并且删除 // 返回是否删除成功的对象 // 如果匹配了多条文档, 只会删除匹配成功的第一条文档 // User.updateOne({..., // 自定义错误信息 message: '传入的值不符合验证规则' } } }); const Post = mongoose.model('Post', postSchema);

    4.2K10

    大数据技术之_22_MongoDB学习_MongoDB 的简介、下载、安装、启动、配置和关闭 + MongoDB 的基本操作 + Mongoose + 使用 java 对 MongoDB 增删改查

    一般会在数据中增加一个字段,来表示数据是否被删除。...比 Node 原生的 MongoDB 驱动更容易 4.3 新的对象 mongoose 中为我们提供了几个新的对象: Schema(模式对象)   • Schema 对象定义约束了数据库中的文档结构。...4.5 Schema--模式对象(约束对象)   使用 Mongoose 你必须经常定义模式。   模式为集合中的文档定义字段和字段类型。   ...如果你的数据是被结构化成支持模式的,这是非常有用的。   简单来说,模式就是对文档的约束,有了模式,文档中的字段必须符合模式的规定。否则将不能正常操作。.../utils/conn_mongo"); 2、定义一个模块,用于定义具体的模型对象 第一种方式: student.js var mongoose = require("mongoose"); var Schema

    17.8K30

    GraphQL 基础实践

    同时在 GraphQL 中,标量字段是粒度最细的一个数据单元了,同时作为返回 JSON 响应数据中的最后一个字段。也就是说,如果是一个 Object,还必须选择至少其中的一个字段。 ?...在type Query下的 movie 字段中,我们使用括号定义我们可以接受的参数名和参数的类型。...如果感叹号跟在 field 的后面,则表示返回该 type 的数据时,此字段一定不为空。 通过上面的类型定义,可以看到 GraphQL 中的类型系统起到了很重要的角色。...在本例中,定义了一个Basic接口,Song以及Video类型都要实现该接口的字段。然后在search查询中返回该接口。 searchMedia查询返回一组Basic接口。...Resolver 对应着 Schema 上的字段,当请求体查询某个字段时,对应的 Resolver 函数会被执行,由 Resolver 函数负责到数据库中取得数据并返回,最终将请求体中指定的字段返回。

    12.8K20

    【GraphQL】225-GraphQL真香入门教程

    特点 请求你所要的数据,不多不少; 如: hero 中有 name, age, sex 等,可以只取得需要的字段。...便于维护,根据需求平滑演进,添加或隐藏字段; GraphQL 使用类型来保证应用只请求可能的数据,还提供了清晰的辅助性错误信息。应用可以使用类型,而避免编写手动解析代码。 2....自定义类型查询 我们前面的查询中,已经将 hero 字段定义为 String 类型,但是常常开发中,我们又会碰到字段是多个类型,即字段也能指代对象类型(Object),比如一个 user 字段会有 name...我们可以新建一个查询类型来定义 user 字段返回的类型: const schema = buildSchema(` type User { # 查询可以有备注!...自定义返回类型 在实际开发中,我们返回的数据类型可能是一个对象,对象中可能既有 Int 类型的属性,也有 String 类型的值,等等,这里我们可以使用 自定义返回类型 来处理: //...省略其他 const

    8.1K21

    Nodejs学习笔记(十四)— Mongoose介绍和入门

    里会用到的一种数据模式,可以理解为表结构的定义;每个schema会映射到mongodb中的一个collection,它不具备操作数据库的能力   我们先改造一下db.js,导出mongoose对象  ...disconnected'); }); module.exports = mongoose;   下面我们定义一个user的Schema,命名为user.js /** * 用户信息...model是由schema生成的模型,可以对数据库的操作   我们对上面的定义的user的schema生成一个User的model并导出,修改后代码如下 /** * 用户信息 */ var mongoose...  $center       范围醒询,圆形范围(基于LBS)   $centerSphere  范围查询,球形范围(基于LBS)   $slice    查询字段集合中的元素(比如从第几个之后,第...,Schema中定义时如上   LBS查询对于一些基于LBS应用会用得比较多。

    2.7K60

    GraphQL真香入门教程

    特点 请求你所要的数据,不多不少; 如: hero 中有 name, age, sex 等,可以只取得需要的字段。...便于维护,根据需求平滑演进,添加或隐藏字段; GraphQL 使用类型来保证应用只请求可能的数据,还提供了清晰的辅助性错误信息。应用可以使用类型,而避免编写手动解析代码。 2....自定义类型查询 我们前面的查询中,已经将 hero 字段定义为 String 类型,但是常常开发中,我们又会碰到字段是多个类型,即字段也能指代对象类型(Object),比如一个 user 字段会有 name...我们可以新建一个查询类型来定义 user 字段返回的类型: const schema = buildSchema(` type User { # 查询可以有备注!...自定义返回类型 在实际开发中,我们返回的数据类型可能是一个对象,对象中可能既有 Int 类型的属性,也有 String 类型的值,等等,这里我们可以使用 自定义返回类型 来处理: //...省略其他 const

    7.3K30

    初试MongoDB学习之Mongoose的使用

    #Mongoose的优势 可以像操作对象一样操作数据库 可以为文档创建一个模式结构(Schema) 可以对模型中的文档/文档进行验证 数据可以通过类型转换为对象模型 可以使用中间件来应用业务逻辑挂钩 比...}) #mongoose基本使用 #mongoose的几个新的对象 在MongoDB中,多个Document可以组成Collection(以下简称集合),多个集合又可以组成数据库。...集合 —— 由一组文档组成,如果将MongoDB中的一个文档比喻成关系型数据库中的一行,那么一个集合就相当于一张表。...mongoose中任何任何事物都是从Schema开始的。每一个Schema对应MongoDB中的一个集合(collection)。Schema中定义了集合中文档(document)的样式。...#定义一个Schema(表/ 模式对象) //新建Schema 定义规则/字段的规则 let Schema= mongoose.Schema; //定义personSchema的字段(规则)需要new一下

    5.9K20

    深入浅出mongodb(一)

    2.4 Schema 定义 Schema 来说其实是用来定义文档的基本字段和集合,也可以理解为表结构的定义。Schema 是与数据无关的 并不能直接操作数据库。...:'user'}) 在 mongoose 中,提供了 Schema 的类,我们可以在实例化的时候先定义mongoose.Schema,以免后续总是要出现丑陋的new mongoose.Schema()。...官网给的解释是: Mixed是一种无模式类型,"anything"随便什么都可以,一般使用Schema.Types.Mixed或者{}来表示。...,callback中的第一个参数永远是错误信息,第二个参数是正确信息。...第二种写法是返回promise 上述定义 model 的方法是通过 model 类创建的,还有一种创建 model 的方法是通过实例创建,这个创建出来的是一个操作对象,代表是一个单个文档只能操作自己。

    4K10
    领券