Mongodb-----初次使用

上代码

db.c3EquipInfo.aggregate([{
	//分组聚合 管道
    "$group": {
        "_id": "$any",
        "c3EquipInfo": {
            "$push": "$$ROOT"
        }
    }
}, {
	//采用union
    "$lookup": {
        "from": "supplierDeviceInfo",
        "localField": "z",
        "foreignField": "z",
        "as": "supplierDeviceInfo"
    }
}, {
	//对两个集合进行合并
    "$project": {
        "_id": 0,
        "allValue": {
            "$setUnion": ["$c3EquipInfo", "$supplierDeviceInfo"]
        }
    }
}, {
	//展开
    "$unwind": "$allValue"
}, {
    "$project": {
    	//字段映射
        "_class": "$allValue._class",
        "power": "$allValue.power",
    }
}, {
	//添加字段
    "$addFields": {
        "online": {
        	//判断 if不成立跳过then  进入elese
            "$cond": {
                "if": {
                    "$and": ["$lastUpTime", "$interval", {
                        "$ne": ["$lastUpTime", null]
                    }, {
                        "$ne": ["$interval", null]
                    }]
                },
                "then": {
                	// cmd 返回 -1  1  0
                    "$eq": [ - 1, {
                        "$cmp": [
                            { $subtract: [new Date(), "$lastUpTime"]},
                            {"$multiply": ["$upInterval", 3000]}
                        ]
                    }]
                },
                "else": {
                    "$cond": {
                        "if": {
                            "$and": ["$online", {
                                "$ne": ["$online", null]
                            }]
                        },
                        "then": "$online",
                        "else": false
                    }
                }
            }
        }
    }
}, {
	//条件
    "$match": {
        "c3ProjectId": {
            "$in": [, 200, 10027, 888]
        },
        "equipType": 0
    }
}])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值