Это структура моей коллекции.

{
 "_id" : ObjectId("5685ea32ba5298688d27cceb"),
 "name" : "t1",
 "array" : [ 
     {
         "name" : "n1",
         "innerArray1" : [ 
             {
                 "id" : 1,
                 "name" : "aaa"
             }, 
             {
                 "id" : 2,
                 "name" : "bbb"
             }
         ],
         "innerArray2" : [ 
             {
                 "id" : 1,
                 "name" : "cccc",
                 "active" : true
             }, 
             {
                 "id" : 2,
                 "name" : "dddd",
                 "active" : false
             }
         ]
     }
 ]}

после find (). Я хочу получить только innerArray2. Пробовал вот так

db.getCollection('Test').find({"name":"t1","array.name":"n1"},{"array.$":1})

{
"_id" : ObjectId("5685ea32ba5298688d27cceb"),
"array" : [ 
    {
        "name" : "n1",
        "innerArray1" : [ 
            {
                "id" : 1,
                "name" : "aaa"
            }, 
            {
                "id" : 2,
                "name" : "bbb"
            }
        ],
        "innerArray2" : [ 
            {
                "id" : 1,
                "name" : "cccc",
                "active" : true
            }, 
            {
                "id" : 2,
                "name" : "dddd",
                "active" : false
            }
        ]
    }
]

}

, но на самом деле я хочу удалить элемент innerArray1 из результата. Это мое ожидание.

{
"_id" : ObjectId("5685ea32ba5298688d27cceb"),
"array" : [ 
    {
        "name" : "n1",
        "innerArray2" : [ 
            {
                "id" : 1,
                "name" : "cccc",
                "active" : true
            }, 
            {
                "id" : 2,
                "name" : "dddd",
                "active" : false
            }
        ]
    }
]}

как я могу это сделать?

Tharanga

Ответов: 1

Ответы (1)

Думаю, вместо использования db.getCollection ('Test'). Find () вы можете использовать db.getCollection ('Test'). FindOne ('innerArray2').

2022 WebDevInsider