当前位置: 首页 > news >正文

自己做网站的软件下载seo实战技术培训

自己做网站的软件下载,seo实战技术培训,用dw6做网站,企业网站需要什么功能目录 MongoDB 的 集合关联演示前提:登录单机模式的 mongodb 服务器命令登录【test】数据库的 mongodb 客户端命令登录【admin】数据库的 mongodb 客户端命令 SQL 术语 与 Mongodb 的对应关系使用 $lookup 实现集合关联语法格式添加测试数据1、查询出订单数量大于6&a…

目录

  • MongoDB 的 集合关联
    • 演示前提:
      • 登录单机模式的 mongodb 服务器命令
      • 登录【test】数据库的 mongodb 客户端命令
      • 登录【admin】数据库的 mongodb 客户端命令
    • SQL 术语 与 Mongodb 的对应关系
    • 使用 $lookup 实现集合关联
      • 语法格式
      • 添加测试数据
      • 1、查询出订单数量大于6,及其对应的商品:
        • 1-1:查询出订单中,【amount】数量大于6的订单
        • 1-2:查询出订单中,【amount】数量大于 6 的订单,及其对应的商品
          • 查询命令
          • 命令解释
          • 查询结果
      • 2、查询出价格为 30 的商品所关联的全部订单
        • 2-1:查询【item】集合中价格为 30 的商品:
        • 2-2:查询出价格为 30 的商品所关联的全部订单
          • 查询命令
          • 命令解释
          • 查询结果
    • 使用 DBRef 实现集合关联
      • 语法格式
      • 添加测试数据
      • 1、查询标题为 “标题2" 的 comment 及对应的商品
        • 1-1:查询标题为 “标题2" 的 comment
          • 查询命令
          • 查询结果
        • 1-2:查询标题为 “标题2" 的 comment 文档 及 对应的商品
          • 查询返回的文档只有一条数据:
            • 查询命令:
            • 查询结果
          • 查询返回的文档有多条数据:
            • 查询命令
            • 查询结果

MongoDB 的 集合关联

演示前提:


登录单机模式的 mongodb 服务器命令

mongod.exe --config "E:\install\mongodb\mongodb-4.2.25\mongod.conf"

在这里插入图片描述


登录【test】数据库的 mongodb 客户端命令

mongo mongodb://192.168.0.107:27017/test -u LJHAAA -p 123456

在这里插入图片描述


登录【admin】数据库的 mongodb 客户端命令

mongo mongodb://192.168.0.107:27017/admin -u admin -p 123456

在这里插入图片描述


SQL 术语 与 Mongodb 的对应关系


在这里插入图片描述


使用 $lookup 实现集合关联


语法格式

在聚集运算使用如下文档:

   {$lookup:{from: 指定要连接的集合localField: 指定本集合中文档的主键字段foreignField: 指定要连接的集合中的外键字段as: 指定被连接对象的属性名}}

localField 和 foreignField 指定两个集合之间的关联条件


添加测试数据

原本的 item 集合有这些数据

在这里插入图片描述

价格为 30 的【键盘】,和 订单 1、2、3相关联;
价格为 60 的【鼠标】,和 订单 4、5 相关联;

db.order.insert([{item_id:  ObjectId("65e6cb5e055c945aa89b8575"), name: "订单1", amount: 3},{item_id:  ObjectId("65e6cb5e055c945aa89b8575"), name: "订单2", amount: 5},{item_id:  ObjectId("65e6cb5e055c945aa89b8575"), name: "订单3", amount: 8},{item_id:  ObjectId("65e6cb5e055c945aa89b8578"), name: "订单4", amount: 4},{item_id:  ObjectId("65e6cb5e055c945aa89b8578"), name: "订单5", amount: 7}
])

如图:生成一个【order】的订单集合,相当于sql的订单表。

在这里插入图片描述


1、查询出订单数量大于6,及其对应的商品:


1-1:查询出订单中,【amount】数量大于6的订单

在这里插入图片描述


1-2:查询出订单中,【amount】数量大于 6 的订单,及其对应的商品

查询命令
 db.order.aggregate([{$match: {amount: {$gt: 6}}},{ $lookup: {from: "item",localField: "item_id",foreignField: "_id",as: "item_detail"}}
])

命令解释
 db.order.aggregate([                  //aggregate 表示对 MongoDB 中的 order 集合执行聚集运算{$match: {amount: {$gt: 6}}},      //这是聚合管道中的第一个阶段,相当于where 条件:查询 amount > 6 的订单     { $lookup:                        // 这是聚合管道中的第二个阶段,使用 $lookup 操作符来执行关联查询{from: "item",               //指定要连接的集合,这里是连接【item】这个集合(表)localField: "item_id",      // 指定当前集合(order)中用于关联的字段为 item_idforeignField: "_id",        //指定要关联的集合(item)中用于关联的字段为 _idas: "item_detail"           //指定将关联查询的结果存储到名为 item_detail 的字段中}}
])

相当于 SQL 中的 join 查询:

select * from order o  
join  item i  on o.item_id = i . _id 
where o.amout > 6;

在这里插入图片描述


查询结果

在这里插入图片描述


2、查询出价格为 30 的商品所关联的全部订单


2-1:查询【item】集合中价格为 30 的商品:
db.item.aggregate([{$match:{price:30}}
])

在这里插入图片描述


2-2:查询出价格为 30 的商品所关联的全部订单
查询命令
db.item.aggregate([{$match: {price: 30}},{$lookup: {from: "order",localField: "_id",foreignField: "item_id",as: "order_array"}}
])

命令解释
db.item.aggregate([{$match: {price: 30}},             //这是聚合管道中的第一个阶段,用于筛选出【item】集合中 price 等于 30 的 数据{$lookup: {    			        //这是聚合管道中的第二个阶段,使用 $lookup 操作符来执行关联查询from: "order",            //指定要关联查询的集合为 orderlocalField: "_id",        //指定当前集合(item)中用于关联的字段为 _idforeignField: "item_id",  //指定要关联的集合(order)中用于关联的字段为 item_idas: "order_array"         //指定将关联查询的结果存储到名为 order_array 的字段中}}
])

查询结果

在这里插入图片描述


使用 DBRef 实现集合关联


语法格式

DBRef 尽可能地模拟了SQL数据库中外键——指定要引用哪个表的哪个列。

插入文档时使用 DBRef 引用其他文档,DBRef 的完整形式:

{ $ref : 被引用的集合名 , $id : 被引用的文档主键< value > , $db : 被引用的数据库 }

如果被引用的集合在同一个数据库中,$db 可以省略。

通过 DBRef 的 fetch() 方法即可抓取关联文档。


添加测试数据

db.comment.insert([{item:  {$ref: "item", $id: ObjectId("65e6cb5e055c945aa89b8575")}, title: "标题1", body: "评论内容1"},{item:  {$ref: "item", $id: ObjectId("65e6cb5e055c945aa89b8575")}, title: "标题2", body: "评论内容2"},{item:  {$ref: "item", $id: ObjectId("65e6cb5e055c945aa89b8575")}, title: "标题3", body: "评论内容3"},{item:  {$ref: "item", $id: ObjectId("65e6cb5e055c945aa89b8575")}, title: "标题4", body: "评论内容4"},{item:  {$ref: "item", $id: ObjectId("65e6cb5e055c945aa89b8575")}, title: "标题5", body: "评论内容5"}
])

item: 这是一个嵌套的字段,包含了一个引用到 item 集合中某个文档的信息。

$ref: “item”: 指定了引用的集合为 item。

$id: ObjectId(“65e6cb5e055c945aa89b8575”): 指定了引用的文档的 ObjectId。

如图:引用了 item 集合中的 id 为 【65e6cb5e055c945aa89b8575】 的文档

在这里插入图片描述


测试数据:

在这里插入图片描述


1、查询标题为 “标题2" 的 comment 及对应的商品


1-1:查询标题为 “标题2" 的 comment

查询命令
db.comment.findOne({title: "标题2"})

查询结果

在这里插入图片描述


1-2:查询标题为 “标题2" 的 comment 文档 及 对应的商品

【备注】如果你已经用了 DBRef 来记录关联,程序可以非常方便处理关联,压根不需要使用 $lookup


查询返回的文档只有一条数据:

查询命令:
db.comment.findOne({title: "标题2"}).item.fetch()

查询结果

在 studio 3t 这个图形界面工具查询就出错。

在这里插入图片描述


修改成这样:

db.comment.findOne({title: "标题2"}, {item: 1})

在这里插入图片描述


在命令行窗口查询就可以

在这里插入图片描述


在这里插入图片描述


查询返回的文档有多条数据:

如果查询的包含了多个文档,且要通过DBRef获取关联文档时,
由于 find() 方法返回的是 DBCursor,因此需要先遍历 DBCursor,然后在通过查询文档的关联属性来获取关联的文档。

DBCursor 有一个 forEach 方法,该方法需要传入一个 JS 的 function( c ) {c就代表了正则遍历的文档},
通过该函数可对DbCursor中多个文档进行遍历。


查询命令
db.comment.find({title: "标题2"}).forEach(function(c){print(JSON.stringify(c) + JSON.stringify(c.item.fetch()));
})

查询结果

在这里插入图片描述

http://www.hengruixuexiao.com/news/32669.html

相关文章:

  • 海南城乡建设厅网站sem是什么工作
  • 怎么创建免费的个人网站wordpress自助建站
  • 大连建设局网站北京百度搜索排名优化
  • 湖南网站建设小公司排名品牌网站建设
  • 网站虚拟主机空间1g多吗网络精准推广
  • 凡客诚品售后服务官方seo平台怎么样
  • 励志故事网站源码运营商大数据精准营销
  • 怎么做五个页面网站seo技术培训价格表
  • 烟台网站建设科技公司网店运营推广登录入口
  • 做的网站显示不了背景图片广州seo怎么做
  • 蓝鸟E4A做网站程序seo搜索价格
  • 临清网站建设公司最新国际新闻头条今日国际大事件
  • 网站整站源码下载工具7月新闻大事件30条
  • 深圳网站建设公北京百度关键词优化
  • 东营做营销型网站建设友情连接
  • 公司网站备案有什么用营销渠道有哪几种
  • 苏州网站建设完善方案2023网站推广入口
  • 网站备案拍照是什么百度知道客服电话人工服务
  • 站点创建成功微信引流的十个方法
  • 网站个人备案转企业备案百度热线
  • 做网站 服务器多少钱一年今日新闻最新消息50字
  • 分析网站日志文件成都企业seo
  • 广东官方移动网站建设哪家好网站搭建步骤
  • 二次开发比一次开发难吗东莞seo外包平台
  • 昆明网络营销网站收录优美图片崩了
  • 长治网站运营在线识别图片百度识图
  • 成都企业网站制作网站怎么优化推荐
  • 网站导航营销的优点seo新闻
  • 东莞外贸网站qq群推广网站免费
  • 网站建设技术团队有多重要营销技巧五步推销法