mongoose踩坑记
来源:互联网 发布:centos 开启snmp 编辑:程序博客网 时间:2024/06/08 11:49
Question1:返回集合【数组有至少两个以上相同的值】
集合数据如下:
{ "_id" : ObjectId("5a28e0b6eeb0b8783a382bd0"), "name" : "a", "activeClass" : [ { "status" : 0.0 }, { "status" : 8.0 }, { "status" : 0.0 } ]}{ "_id" : ObjectId("5a28e0d2eeb0b8783a382bd1"), "name" : "b", "activeClass" : [ { "status" : 8.0 }, { "status" : 8.0 }, { "status" : 0.0 } ]}
查询条件:
db.collection.aggregate( {$unwind: "$activeClass" }, {$match: {"activeClass.status":8}}, {$group: {"_id": "$_id", "count": {"$sum": 1}}}, {$match: {count :{$gte :2}}});
返回结果:
{ "_id" : ObjectId("5a28e0d2eeb0b8783a382bd1"), "count" : 2.0}
解析:
unwind 是根据 $activeClass中的元素分解成单个。
查询:db.collection.aggregate( {$unwind: "$activeClass" });返回结果:{ "_id" : ObjectId("5a28e0b6eeb0b8783a382bd0"), "name" : "a", "activeClass" : { "status" : 0.0 }}{ "_id" : ObjectId("5a28e0b6eeb0b8783a382bd0"), "name" : "a", "activeClass" : { "status" : 8.0 }}{ "_id" : ObjectId("5a28e0b6eeb0b8783a382bd0"), "name" : "a", "activeClass" : { "status" : 0.0 }}{ "_id" : ObjectId("5a28e0d2eeb0b8783a382bd1"), "name" : "b", "activeClass" : { "status" : 8.0 }}{ "_id" : ObjectId("5a28e0d2eeb0b8783a382bd1"), "name" : "b", "activeClass" : { "status" : 8.0 }}{ "_id" : ObjectId("5a28e0d2eeb0b8783a382bd1"), "name" : "b", "activeClass" : { "status" : 0.0 }}
Question2:查询条件如何表达数组指定元素
集合数据:
{ "_id" : ObjectId("5a28e0b6eeb0b8783a382bd0"), "name" : "a", "activeClass" : [ { "status" : 0.0 }, { "status" : 8.0 }, { "status" : 0.0 } ]}
查询:返回activeClass数组第一个元素值为1的集合;
db.collection.find({activeClass.0.status: 1});
阅读全文
0 0
- mongoose踩坑记
- mongoose
- mongoose
- Mongoose
- Mongoose
- mongoose
- mongoose
- mongoose
- Mongoose
- mongoose
- Mongoose
- mongoose
- mongoose
- mongoose
- mongoose
- mongoose
- mongoose入门
- 配置mongoose
- 一个完整Android项目所需要用到的gradle配置技巧
- 【数据格式】-XML
- QT控件大全 三十九 QVCursorQCircularBar
- ODL netconf挂载点操作设备
- spring中@ResponseBody的使用
- mongoose踩坑记
- 如何将Eclipse中Web项目打成war包
- FPGA串口发送代码分享
- JAVA多线程编程实战视频-第三阶段(共80节)
- JS中给数组对象排序
- Spring Cloud 之 基础学习资料
- 如何用AndroidStudio编译jar并用cmd执行
- ubuntu 16.04LTS 下Code::Blocks + Opencv3.3开发环境配置
- myeclopse2014 SSH框架搭建