-1
у меня есть этот кодMongoDB и агрегировать несколько элементов
> db.attributes.aggregate([{ $match: {"name.en-UK": "Size"} },{ $unwind : "$values" },{ $project: { "code" : "$values.code", "name" : "$values.name", "_id": "$values._id"} },{ $match: {"name.en-UK": "S"}}])
{
"result" : [
{
"_id" : ObjectId("53b2c644d901f244965f74e3"),
"code" : 0,
"name" : {
"en-UK" : "S"
}
},
{
"_id" : ObjectId("53b2c644d901f244965f74e4"),
"code" : 1,
"name" : {
"en-UK" : "S"
}
}
],
"ok" : 1
}
как я могу изменить его так, что он возвращает только «код» == 0 с «именем» == «ан-UK»: «S»
я попытался это:
> db.attributes.aggregate([{ '$match': {"name.en-UK": "Size"} },
... { '$unwind' : "$values" },
... { '$project': { "code" : "$values.code", "valueId": "$values._id"} },
... { '$match': {
... $and: [
... {"name.en-UK": "S"},
... {"code": 0}
... ]
... }
... }])
{ "result" : [ ], "ok" : 1 }
но не работает!
и совет высоко ценится
Не первый пост, где вы, кажется, анализа кода, который вы не понимаете и просят объяснений. Ответы довольно просты, если вы нашли время и поняли основы работы с MongoDB. Это ** Не ** помочь вам с контрактом, который вы приняли на службу. –
Редактирование не помогает. Путь «name.en-UK» явно не соответствует данным для «Размер». Сначала сделайте чтение. –