我的结构是这样的,还有更多的值: -添加WHERE条件中总量和组功能在MongoDB中
{
"_id" : ObjectId("542139f31284ad1461dbc15f"),
"Category" : "CENTER",
"Name" : "STAND",
"Url" : "center/stand",
"Img" : [ {
"url" : "www.google.com/images",
"main" : "1",
"home" : "1",
"id" : "34faf230-43cf-11e4-8743-311ea2261289"
},
{
"url" : "www.google.com/images1",
"main" : "1",
"home" : "0",
"id" : "34faf230-43cf-11e4-8743-311e66441289"
} ]
}
我的查询是:
db.MYLIST.aggregate([
{ "$group": {
"_id": "$Category",
"Name": { "$addToSet": {
"name": "$Name",
"url": "$Url",
"img": "$Img"
}}
}},
{ "$sort": { "_id" : 1 } }
]);
结果是 - [ { _id: 'CENTER', Name: [ { "name" : "Stand", "url" : "center/stand", "img": { "url" : "www.google.com/images" , "main" : "1", "home" : "1", "id" : "350356a0-43cf-11e4-8743-311ea2261289" } }] }, { _id: 'CENTER', Name: [ { "name" : "Stand", "url" : "center/stand", "img": { "url" : "www.google.com/images1" , "main" : "1", "home" : "0", "id" : "34faf230-43cf-11e4-8743-311ea2261289" } }] } ]
NOW作为IMG数组中的ID是不同的,所以我得到多个相同的类别和名称 但我只想要那个网址,有家= 1即WW w.google.com/images在我的结果中。
预期的结果: - [ { _id: 'CENTER', Name: [ { "name" : "Stand", "url" : "center/stand", "img": { "url" : "www.google.com/images" , "main" : "1", "home" : "1", "id" : "350356a0-43cf-11e4-8743-311ea2261289" } }] }, ]
所以我想添加一个WHERE条件在这里,我只得到名义上有Img.home = 1 任何一个可以帮助我是新来monogodb这些结果。
你想在这里实现什么?你是否真的试图获得每个类别的独特项目?或者你只是试图只获得匹配'“home”= 1'的数组中的项?也许展示你期望的东西。 – 2014-09-26 05:58:06
我想要独特的类别。 然后在类本身,我想找到独特的名字与他们的url和images.LIke这种结构: - [ {_id: '制动', 名称: [对象], [对象], \t] },{ _id: '中心', 名称: [对象], [对象], ]}, ] – 2014-09-26 06:13:18
你是不是真的解释什么' “家”= 1'与此有关。你真的想过滤吗?或者你只是试图解释说,你通过“url”或其他东西来获得“独特”项目。您可以编辑您的问题并添加详细信息。 [对象] [对象]不是一个解释。 – 2014-09-26 06:21:52