//普通查询
查询分类不为空的数据:{category:{$ne:""}}
{
"_id" : ObjectId("57b44b8d8575c355e4d10850"),
"commentNum" : NumberInt(64),
"productPath" : "家装建材 > 电工电料 > 配电箱/断路器 > 西门子(SIEMENS) > 西门子 漏电保护器 2P 63A家用漏保总开关1P+N 空气..",
"productId" : "10497573188",
"productDetail" : [
"品牌: 西门子(SIEMENS) ♥关注",
"商品名称:西门子 漏电保护器 2P 63A家用漏保总开关1P+N 空气开关 总闸家用空开 1P+N标准型 两模位 接220V 16A",
"商品编号:10497573188",
"店铺: 西门子工品汇专卖店",
"商品毛重:500.00g",
"货号:漏电保护器",
"类别:漏电保护器",
"规格:2P"
],
"shopName" : "西门子工品汇专卖店",
"saleNum" : NumberInt(88),
"productName" : "西门子 漏电保护器 2P 63A家用漏保总开关1P+N 空气开关 总闸家用空开 1P+N标准型 两模位 接220V 16A",
"productPrice" : 123.0,
"date" : ISODate("2016-08-15T00:00:00.000+0800"),
"brand" : "西门子(SIEMENS)",
"category" : "漏电保护器"
}
查询分类为空的数据:{category:{$eq:""}}
{
"_id" : ObjectId("57b44b8d8575c355e4d10854"),
"commentNum" : NumberInt(7),
"productPath" : "家装建材 > 电工电料 > 接线板/排插 > 西门子(SIEMENS) > 西门子(SIEMENS)插座 双USB带过载保护 接线板插排..",
"productId" : "10494641457",
"productDetail" : [
"品牌: 西门子(SIEMENS) ♥关注",
"商品名称:西门子(SIEMENS)插座 双USB带过载保护 接线板插排电源插线板1.8米3位排插 USB排插(1.8m)",
"商品编号:10494641457",
"店铺: 西门子工品汇专卖店",
"商品毛重:100.00g",
"货号:5EX84111NC01",
"孔位:其他",
"开关:总控开关",
"功能:USB充电",
"全长:2米以下",
"适用场景:家用"
],
"shopName" : "西门子工品汇专卖店",
"saleNum" : NumberInt(11),
"productName" : "西门子(SIEMENS)插座 双USB带过载保护 接线板插排电源插线板1.8米3位排插 USB排插(1.8m)",
"productPrice" : 59.0,
"date" : ISODate("2016-08-15T00:00:00.000+0800"),
"brand" : "西门子(SIEMENS)",
"category" : ""
}
查询属性为字符数组的数据:
productDetail为字符数组,如下
"productDetail" : [
"品牌: 西门子(SIEMENS) ♥关注",
"商品名称:西门子(SIEMENS)插座 双USB带过载保护 接线板插排电源插线板1.8米3位排插 USB排插(1.8m)",
"商品编号:10494641457",
"店铺: 西门子工品汇专卖店",
"商品毛重:100.00g",
"货号:5EX84111NC01",
"孔位:其他",
"开关:总控开关",
"功能:USB充电",
"全长:2米以下",
"适用场景:家用"
]
查询代码1(全匹配数组的某一项数据,如匹配商品编号一项):{productDetail:"商品编号:10494641457",category:{$eq:""} }。
查询结果:
{
"_id" : ObjectId("57b44b8d8575c355e4d10854"),
"commentNum" : NumberInt(7),
"productPath" : "家装建材 > 电工电料 > 接线板/排插 > 西门子(SIEMENS) > 西门子(SIEMENS)插座 双USB带过载保护 接线板插排..",
"productId" : "10494641457",
"productDetail" : [
"品牌: 西门子(SIEMENS) ♥关注",
"商品名称:西门子(SIEMENS)插座 双USB带过载保护 接线板插排电源插线板1.8米3位排插 USB排插(1.8m)",
"商品编号:10494641457",
"店铺: 西门子工品汇专卖店",
"商品毛重:100.00g",
"货号:5EX84111NC01",
"孔位:其他",
"开关:总控开关",
"功能:USB充电",
"全长:2米以下",
"适用场景:家用"
],
"shopName" : "西门子工品汇专卖店",
"saleNum" : NumberInt(11),
"productName" : "西门子(SIEMENS)插座 双USB带过载保护 接线板插排电源插线板1.8米3位排插 USB排插(1.8m)",
"productPrice" : 59.0,
"date" : ISODate("2016-08-15T00:00:00.000+0800"),
"brand" : "西门子(SIEMENS)",
"category" : ""
}
查询代码2(部分匹配数组的某一项数据,使用正则):{productDetail:/10494641457/,category:{$eq:""} }
查询结果:
{
"_id" : ObjectId("57b44b8d8575c355e4d10854"),
"commentNum" : NumberInt(7),
"productPath" : "家装建材 > 电工电料 > 接线板/排插 > 西门子(SIEMENS) > 西门子(SIEMENS)插座 双USB带过载保护 接线板插排..",
"productId" : "10494641457",
"productDetail" : [
"品牌: 西门子(SIEMENS) ♥关注",
"商品名称:西门子(SIEMENS)插座 双USB带过载保护 接线板插排电源插线板1.8米3位排插 USB排插(1.8m)",
"商品编号:10494641457",
"店铺: 西门子工品汇专卖店",
"商品毛重:100.00g",
"货号:5EX84111NC01",
"孔位:其他",
"开关:总控开关",
"功能:USB充电",
"全长:2米以下",
"适用场景:家用"
],
"shopName" : "西门子工品汇专卖店",
"saleNum" : NumberInt(11),
"productName" : "西门子(SIEMENS)插座 双USB带过载保护 接线板插排电源插线板1.8米3位排插 USB排插(1.8m)",
"productPrice" : 59.0,
"date" : ISODate("2016-08-15T00:00:00.000+0800"),
"brand" : "西门子(SIEMENS)",
"category" : ""
}
{
"_id" : ObjectId("57b44b8d8575c355e4d10e68"),
"commentNum" : NumberInt(7),
"productPath" : "家装建材 > 电工电料 > 接线板/排插 > 西门子(SIEMENS) > 西门子(SIEMENS)插座 双USB带过载保护 接线板插排..",
"productId" : "10494641457",
"productDetail" : [
"品牌: 西门子(SIEMENS) ♥关注",
"商品名称:西门子(SIEMENS)插座 双USB带过载保护 接线板插排电源插线板1.8米3位排插 USB排插(1.8m)",
"商品编号:10494641457",
"店铺: 西门子工品汇专卖店",
"商品毛重:100.00g",
"货号:5EX84111NC01",
"孔位:其他",
"开关:总控开关",
"功能:USB充电",
"全长:2米以下",
"适用场景:家用"
],
"shopName" : "西门子工品汇专卖店",
"saleNum" : NumberInt(11),
"productName" : "西门子(SIEMENS)插座 双USB带过载保护 接线板插排电源插线板1.8米3位排插 USB排插(1.8m)",
"productPrice" : 59.0,
"date" : ISODate("2016-08-14T00:00:00.000+0800"),
"brand" : "西门子(SIEMENS)",
"category" : ""
}
//属性为对象数组的查询,属性为对象数组,将符合数组中某个对象部分属性的记录查询出来。
查询代码:{
"key.type": "category2",
"range": 1,
"hotList": {
$elemMatch: {
"category1": "配饰",
"category2": "包包",
"goodsId": "7283"
}
}
}
key.type:key是个对象,key.type表示对象的typ属性符合条件category2。
hotList是个数组,若数组内对象的某几个属性符合条件,整条记录将被查出来。
{
"_id":ObjectId("57a1ea5e8575c34058253a00"),
"key":{
"type":"category2",
"value":"帽子",
"updateTime":ISODate("2015-09-18T16:00:00.0Z")
},
"range":NumberInt(5),
"hotList":[
{
"category1":"配饰",
"category2":"帽子",
"description1":"INMAN茵曼2011秋装新款面料拼接薄款外套 F533",
"factor1":"无",
"factor2":"",
"factor3":NumberLong(1),
"factor4":NumberLong(1),
"goodsId":"8960",
"goodsName":"帽子",
"goodsPrice":204.9,
"goodsUnit":"件",
"inMonth":NumberInt(3),
"inSeason":NumberInt(1),
"inTime":ISODate("2012-03-01T16:00:00.0Z"),
"inYear":NumberInt(2016),
"priceUnit":"元",
"updateTime":ISODate("2015-09-18T16:00:00.0Z"),
"sale":554,
"amount":113514.6
}
]
}
//分组查询
db.saleDetails.group(
{key:{"key.goodsId":true},initial:{num:0},$reduce:function(doc,prev){prev.num++
},
condition:{
"key.granularity": "month",
"time":{
"$gt":ISODate("2015-04-30T16:00:00.0Z"),
"$lte":ISODate("2015-05-31T16:00:00.0Z")
}
}
})