首页 > 数据库 >MongoDB由浅入深(查询)

MongoDB由浅入深(查询)

时间:2024-02-01 18:11:07浏览次数:27  
标签:由浅入深 MongoDB db shopId 查询 orderSlic slicDate eq id

//基础查询
db.orderSlic.find();
//根据ID查询
db.orderSlic.find(
{
_id: 54708407
}
);
//范围查询
db.orderSlic.find(
{
"_id": {
"$gte": 54708407,
"$lte": 54708409
}
}
);
//多字段分组统计
db.orderSlic.aggregate([
{
$group: {
_id: {
shopId: "$shopId",
outerId: "$outerId"
},
totalCount: {
$sum: 1
}
}
}
]);
//对某个字段分组后取最大日期
db.orderSlic.aggregate([
{
$group: {
_id: "$shopId",
maxSlicDate: {
$max: "$slicDate"
}
}
}
]);
//对某个字段分组后取最大日期后再根据shopId筛选(基于group后的结果集,并不是整个文档)
db.orderSlic.aggregate([
{
$group: {
_id: "$shopId",
maxSlicDate: {
$max: "$slicDate"
}
}
},
{
$match: {
_id: {
$eq: 28
}
}
}
]);
//日期类型匹配
db.orderSlic.aggregate([
{
$match: {
shopId: {
$eq: 28
},
slicDate: {
$eq: ISODate("2023-11-29 06:50:00.000")
}
}
}
]);
//根据分组后的结果集,再去原文档中匹配。
db.orderSlic.aggregate([
{
$group: {
_id: "$shopId",
maxSlicDate: {
$max: "$slicDate"
}
}
},
// {
// $match: {
// _id: {
// $eq: 28
// }
// }
// },
{
$lookup: {
from: "orderSlic",
let: {
shopId: "$_id",
slicDate: "$maxSlicDate"
},
pipeline: [{
$match: {
$expr: {
$and: [
{
$eq: ["$$shopId", "$shopId"]
},
{
$eq: ["$$slicDate", "$slicDate"]
}
]
}
}
}],
as: "subTable"
}
}
]);

标签:由浅入深,MongoDB,db,shopId,查询,orderSlic,slicDate,eq,id
From: https://www.cnblogs.com/LoveShare/p/18001814

相关文章

  • 区间修改,单点查询的树状数组
    #include<bits/stdc++.h>#defineCLOSEios::sync_with_stdio(false);cin.tie(0);cout.tie(0)#defineendl"\n"typedeflonglongLL;constintN=1e6+10,M=N,mod=1e9+7;usingnamespacestd;inta[N],b[N],n,q;LLt[N];intlowbi......
  • 区间修改+区间查询的树状数组
    /*https://www.acwing.com/solution/content/44886/看acwing*/#include<bits/stdc++.h>#defineCLOSEios::sync_with_stdio(false);cin.tie(0);cout.tie(0)#defineendl"\n"typedeflonglongLL;constintN=1e6+10,M=N,mod=1e9+7;u......
  • sprinboot实现分页查询
    1.环境介绍:springboot2.7.4pagehelper1.4.6mybatis-plus3.5.12.需求分析通过前端传回的分页要求的参数<页码,页数据量>,返回结果实现{"code":0,"message":"操作成功","data":{"total":5,"items&quo......
  • tp 框架进行数据查询
    模型层方面设置表名主见名称字段protected$name='recruit';protected$pk='recruit_id';protected$field=[];//查找详情数据publicstaticfunctiongetUserOrderDetail($order_id,$user_id){$order=$this->where(['......
  • Linux下查询CPU,内存,磁盘及操作系统
    查询CPU核数nproc结果为4查询内存free-h#以人类(human)可读的方式展示结果为totalusedfreesharedbuff/cacheavailableMem:15Gi2.2Gi327Mi1.0Mi13Gi13GiSwap:......
  • JdbcTemplate.queryForList()查询结果如何对Date等日期类型进行格式化?
    1.情景展示在实际开发中,我们往往会遇到这样的需求:需要对多个数据库进行操作,这用mybatis等框架来进行操作显然不合理,也无法满足多样化的需求。通过java来进行JDBC操作无疑是最好的选择。如下图所示,通过org.springframework.jdbc.core.JdbcTemplate.queryForList()方法查询到......
  • MySQL大表分页查询的坑以及解决方案
    最近在做一个需求,需求内容中有一个功能点是查询指定用户标签里的用户id,这里做了分页查询,分页查询是用mysql的LIMIT设置offset和size值来实现的。在程序执行过程中会发现,如果查询的用户标签数据量很大时会出现慢查询告警,这里已经对mysql表的标签名称和用户id字段都加了索引,并且limi......
  • 微信小程序连表查询lookup
    已知有两个集合media和users,集合中的字段(users中的)_openid和(media中的)openid值相同 小程序页面js中调用云函数getMediawx.cloud.callFunction({name:'getMedia',data:{sort}}).then(res=>{if(res.result){this.setData({......
  • Langchain中改进RAG能力的3种常用的扩展查询方法
    有多种方法可以提高检索增强生成(RAG)的能力,其中一种方法称为查询扩展。我们这里主要介绍在Langchain中常用的3种方法查询扩展技术涉及对用户的原始查询进行细化,以生成更全面和信息丰富的搜索。使用扩展后的查询将从向量数据库中获取更多相关文档。1、StepBackPromptingTake......
  • elasticsearch 查询:聚合查询
    新建索引:POST/index/_search{"aggs":"名字":{"agg_type":{"属性":"值"}}} 1.去重计数查询去重计数,即Cardinality先将返回的文档中的field进行去重,......