首页 > 其他分享 >【Mongo】Mongo表结构设计以及查询示例

【Mongo】Mongo表结构设计以及查询示例

时间:2023-11-24 14:48:41浏览次数:29  
标签:info alterTime Mongo 示例 pro 09 db alter 结构设计

 

 

Mongo SQL:

 //建表语句
 db.createCollection("pro_alter_info")


//插入文档语句
db.pro_alter_info.insert(
    {
        "alterTime": "2022-03-27 16:43:09",
        "alterType": 1,
        "proId": 2203271021000001,
        "venderId": 1,
        "alterId": 22032710000000001,
        "storeId": -1,
        "sku": -1,
        "proReward":-1, 
        "skuSnapshoot": [121267, 121278],
        "storeSnapshoot": [112641, 106499]
    }
)


db.pro_alter_info.find()

db.pro_alter_info.find({"_id":ObjectId("622723944a1756d2dca1a6c1")})
 
//查找 alterId为空的无效数据集   $exists 无法利用到索引, 但 $NE 和 $in 可以用上索引
db.pro_alter_info.find({alterId:{$in:[null]}})

//删除 alterId为空的记录  remove仅返回删除影响行数 和是否删除成功
db.pro_alter_info.remove({alterId:{$in:[null]}});

//多条件查询
db.pro_alter_info.find({proId:{$in:[2203271021000001]},sku: -1 ,alertUserName:"yingxiao" })

//时间查询1 查询 > 2022-03-27 14:00:00  差8个时区
db.pro_alter_info.find({alterTime:{$gt:ISODate("2022-03-27T06:00:00Z")}});


//时间查询2 范围查询   2022-03-27 14:00:00   < alterTime < 2022-03-27 18:00:00
db.pro_alter_info.find({alterTime:{$gt:ISODate("2022-03-27T06:00:00Z") , $lt:ISODate("2022-03-27T10:00:00Z")}});



//建索引  
db.pro_alter_info.createIndex({"alterId":1});
db.pro_alter_info.createIndex({"proId":1,"alterTime":-1});
db.pro_alter_info.createIndex({"storeId":1,"skuSnapshoot":1,"alterType":1,"proId":1,"alterTime":-1});
db.pro_alter_info.createIndex({"storeSnapshoot":1,"sku":1,"alterType":1,"proId":1,"alterTime":-1});
db.pro_alter_info.createIndex({"storeId":1,"alterType":1,"proId":1,"alterTime":-1});
db.pro_alter_info.createIndex({"storeSnapshoot":1,"alterType":1,"proId":1,"alterTime":-1});
//过期索引(一年过期)
db.pro_alter_info.createIndex({"alterTime":1},{{ expireAfterSeconds: 31536000 }});

//这个建立不成功,因为cannot index parallel arrays 建立联合索引的字段不能均为数组
db.pro_alter_info.createIndex({"storeSnapshoot":1,"skuSnapshoot":1,"alterType":1,"proId":1,"alterTime":-1})


 

 

 
alertId venderId sku reward storeId proId alterType alertTime alertUserId alertUserName skuSnapshoot storeSnapshoot skuRewardSnapshoot 记录说明
1   86 -1   -1   -1   2101092013000005   1 PRO_CREATE   2021-01-09 16:20:31 1   二狗子   [skus]   [storeIds]     <sku:reward> Map的JSON字符串   促销运营审核通过,即促销创建 记录 促销创建时刻sku快照 促销创建时刻store快照
2 86 -1 -1 -1 2101092013000005 2 PRO_END   2021-01-09 16:20:31 1 二狗子 [skus] [storeIds]   <sku:reward> Map的JSON字符串 促销结束 记录 促销结束时刻sku快照 促销结束时刻store快照
3 86 -1 -1 -1 2101092013000005 3 PRO_STOP 2021-01-09 16:20:31 1 二狗子 [skus]   [storeIds]   <sku:reward> Map的JSON字符串 强制结束
4 86 sku1   加商品这一刻的该品优惠设置 -1   2101092013000005 4 ADD_GOODS 2021-01-09 16:20:31 1 二狗子   [storeIds]     添加商品  
5 86 sku1 -1 -1 2101092013000005 5 DEL_GOODS 2021-01-09 16:20:31 1 二狗子   [storeIds]     删除商品
6 86 sku1 调价格这一刻的该品优惠设置 -1 2101092013000005 6 PRICE_ALTER 2021-01-09 16:20:31 1 二狗子   [storeIds]     价格调整
7 86 -1 -1 -1 2101092013000005 7 TIME_ALTER   2021-01-09 16:20:31 1 二狗子 [skus] [storeIds]     <sku:reward> Map的JSON字符串 修改促销时间 记录 修改时间时刻的sku快照 修改时间时刻的store快照
8 86 -1 -1 storeId1 2101092013000005 8 ADD_STORE 2021-01-09 16:20:31 1 二狗子 [skus]     <sku:reward> Map的JSON字符串 新增门店
9 86 -1 -1 storeId1 2101092013000005 9 DEL_STORE   2021-01-09 16:20:31 1 二狗子 [skus]     删除门店

 

标签:info,alterTime,Mongo,示例,pro,09,db,alter,结构设计
From: https://www.cnblogs.com/sxdcgaq8080/p/17853670.html

相关文章

  • SQL LIKE 运算符:用法、示例和通配符解释
    SQL中的LIKE运算符用于在WHERE子句中搜索列中的指定模式。通常与LIKE运算符一起使用的有两个通配符:百分号%代表零个、一个或多个字符。下划线_代表一个单个字符。以下是LIKE运算符的用法和示例:示例选择所有以字母"a"开头的客户:SELECT*FROMCustomersWHERECustome......
  • SQL LIKE 运算符:用法、示例和通配符解释
    SQL中的LIKE运算符用于在WHERE子句中搜索列中的指定模式。通常与LIKE运算符一起使用的有两个通配符:百分号%代表零个、一个或多个字符。下划线_代表一个单个字符。以下是LIKE运算符的用法和示例:示例选择所有以字母"a"开头的客户:SELECT*FROMCustomersWHERECustom......
  • 搭建 MongoDB (v6.0) 副本集记录
    副本集概述副本集(ReplicaSet)是一组带有故障转移的MongoDB实例组成的集群,由一个主(Primary)服务器和多个从(Secondary)服务器构成。通过Replication,将数据的更新由Primary推送到其他实例上,在一定的延迟之后,每个MongoDB实例维护相同的数据集副本。通过维护冗余的数据库副本,能够实......
  • 结构设计,二级联动,每行不同下拉框
    如果说一个二级联动框的结构设计,可以采用Map结构。那么我下面有个问题记录一下:假设有一个表格,每行初始的下拉选项是一样的,但是随着一级下拉框的改变,二级下拉框就会有所变化。比如1,我选择地球,物种只有地球的物种。如果2,我选择了火星,物种就只有火星的物种。像这样的每行都不一......
  • rowSpan和colSpan示例记录
    rowSpan和colSpan看起来简单,真要自己写,要调半天,记录一个经典例子,方便快速上手<tableborder="1"cellspacing="0"><tr><tr><throwspan="2">学号</th><throwspan="2">姓名</th......
  • SQL 中的 MIN 和 MAX 以及常见函数详解及示例演示
    SQLMIN()和MAX()函数SQL中的MIN()函数和MAX()函数用于查找所选列的最小值和最大值,分别。以下是它们的用法和示例:MIN()函数MIN()函数返回所选列的最小值。示例:查找Products表中的最低价格:SELECTMIN(Price)FROMProducts;MAX()函数MAX()函数返回所选列的最大值。......
  • MongoDb 查询
    db.getCollection("Tags").find().limit(100);db.getCollection("Tags").find().count();--like查询db.getCollection("Tags").find({"Tag":{$regex:/htm1/}})  db.getCollection("queue").find({_id:ObjectId("......
  • 学习mongo和go
    mongo:moduleData,ok:=result.Lookup("context1","context2").DocumentOK() result.Lookup("context1","context2") 用于检索名为"content1"的字段,并且该字段的值又是一个嵌套的文档,我们希望进一步获取其中名为"content2"的字段。.Docum......
  • python tkinter treeview 操作示例
    1.建立Treeviewfromtkinterimport*fromtkinter.ttkimport*root=Tk()#建立Treeviewcolumns=(('ID',50),('S_ID',50),('S_NAME',120),('B_NAME',120),('Date_Taken',100),......
  • 基于go-zero的api网关示例
    以下是基于go-zero框架的API网关示例。这个示例包括一个简单的API网关,它接收HTTP请求,将请求路由到不同的服务,并返回响应。创建项目首先,在go-zero仓库中创建一个新的目录:mkdirapi-gatewaycdapi-gateway创建Go文件在api-gateway目录下创建以下三个文件:c......