MongoDB由浅入深(查询)

//基础查询
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"
}
}
]);

posted @ 2024-02-01 18:07  DiligentCoder  阅读(12)  评论(0编辑  收藏  举报