在线商城项目08-数据库创建和商品集合的创建

简介

本篇,我们主要有如下目的:

  1. 创建数据库
  2. 创建商品集合

1. 创建数据库

首先启动数据库服务,并连接。

brew services start mongodb
mongo

查看当前的数据库:

show dbs

如下:

创建本项目的数据库six_tao。如下:

use six_tao

不过此时

show dbs

仍然没有出现six_tao

因为six_tao中没有任何内容。我们需要为其创建一个集合或者插入文档,数据库才会显示。例如:

db.goods.insert({"productId":"001"})

这条命令会创建集合goods,并在其内插入一个文档{"productId":"001"}。我们来看一下:

show dbs
db.goods.find()

2. 创建商品集合

step1 定义商品集合 首先我们要定义商品集合,如下:

Goods:
  {
    "productId":String,     // 商品Id
    "productName":String,  // 商品名
    "salePrice":Number,  // 售价
    "checked":String,  // 是否被选中(在购物车中)
    "productNum":Number,  // 选购数量
    "productImage":String  // 商品图片名称
  }

step2 文档插入 最直接的方法就是一条条插入了,使用上述db.goods.insert方法进行操作。但是在数据量较大时,这种方法明显是不可取的。下面我介绍两种方法,来进行大量文档的的导入。 方法1 使用mongoimport 在此之前,我们先删除之前插入的文档。如下:

db.goods.remove({"productId":"001"})

我们发现文档被删除,但是集合和数据库仍然存在。 我在resources中上传了goods集合文件,当然这个本来应该放在后端仓库中更合适,不过我们目前还没有后端仓库,索性先放在这里。

新开命令行输入如下命令:

# 具体名称和路径以实际为准
mongoimport -d six_tao -c goods --file /Users/liuliu/Documents/study/practice/six-tao/resources/db/goods

再次查询集合内的文档:

发现已经成功批量导入了。

方法二 使用mongodb可视化管理软件 这个在网上其实一搜一大堆,比如看这里MongoDB 生态 – 可视化管理工具。挑选一款合适的使用即可。我本人使用的是adminmongo

总结

这节知识是一些准备工作。我们提交代码即可:

git status
git add .
git commit -am 'add db resources goods'
git push

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏owent

libcopp更新 (merge boost 1.59 context)

这个框架的上下文部分是使用了boost.context,但是从开始写libcopp到现在,boost.context也更新了几个版本。而之前几次merge基本都...

842
来自专栏Albert陈凯

2018-08-02 IntelliJ IDEA - Debug 调试多线程程序IntelliJ IDEA - Debug 调试多线程程序

https://blog.csdn.net/nextyu/article/details/79039566

1712
来自专栏Java后端技术栈

Java多线程编程-(1)-线程安全和锁Synchronized概念

(1)在传统的操作系统中,程序并不能独立运行,作为资源分配和独立运行的基本单位都是进程。

813
来自专栏Java学习网

Java线程使用技巧学习(一)

Java线程使用技巧学习(一) Java线程有哪些不太为人所知的技巧与用法?   萝卜白菜各有所爱。像我就喜欢Java。学无止境,这也是我喜欢它的一个原因...

1896
来自专栏编程

PHP7 下的协程实现

前言 相信大家都听说过『协程』这个概念吧。 但是有些同学对这个概念似懂非懂,不知道怎么实现,怎么用,用在哪,甚至有些人认为yield就是协程! 我始终相信,如果...

3108
来自专栏码农二狗

防止因事务未提交导致的死锁

994
来自专栏FreeBuf

挖洞经验 | 命令注入突破长度限制

0x01 背景 很多时候,在我们历经千辛万苦挖掘出一个漏洞或者找到一个利用点的时候,却因为一些egg hurt的限制,导致get shell或者send pay...

23710
来自专栏不会写文章的程序员不是好厨师

伪共享(False Sharing)和缓存行(Cache Line) 大杂烩

在上篇介绍LongAdder的文章中,我们最后留下了一个问题,为什么Cell中要插入很多个实际上并没有使用的Long变量?这个问题就得从False Sharin...

1411
来自专栏ImportSource

并发编程-什么是线程安全?

定义“线程安全”这个概念是一个非常复杂的事情。越是正式而严肃的描述它越是复杂难懂,不仅没办法提供一些实际的指导,而且还没法有一个直观的理解。还有一些不太正式的描...

3737
来自专栏码生

StackNavigator in react-navigation 传参

使用上面的方法即可进行参数传递 但是我建议当想下一个界面传参数时,使用唯一字段标识

931

扫码关注云+社区

领取腾讯云代金券