鍍金池/ 問答/數(shù)據(jù)庫  HTML/ mongdb 如何操作子文檔數(shù)組 (查詢并返回子數(shù)組、增加或修改指定索引項)?

mongdb 如何操作子文檔數(shù)組 (查詢并返回子數(shù)組、增加或修改指定索引項)?

集合a中有以下文檔:

{
    "_id" : ObjectId("5acd77c763c9b117b48b2e92"),
    "Symbol" : "item01",
    "min5" : [ 
        {
            "Symbol" : "item01",
            "Date" : "2017-01-31",
            "price" : 5000
        }, 
        {
            "Symbol" : "item01",
            "Date" : "2017-01-30",
            "price" : 4999
        }, 
         {
            "Symbol" : "item01",
            "Date" : "2017-01-29",
            "price" : 4998
        }
        ...
    ],
    "min10" : [ 
        {
            "Symbol" : "item01",
            "Date" : "2017-01-31",
            "price" : 5010
        }, 
        {
            "Symbol" : "item01",
            "Date" : "2017-01-30",
            "price" : 5009
        }, 
         {
            "Symbol" : "item01",
            "Date" : "2017-01-29",
            "price" : 5008
        }
        ...
    ]
}
{
    "_id" : ObjectId("5acd77c763c9b117b48b2e91"),
    "Symbol" : "item02",
    "min5" : [ 
        {
            "Symbol" : "item02",
            "Date" : "2017-01-31",
            "price" : 2000
        }, 
        {
            "Symbol" : "item02",
            "Date" : "2017-01-30",
            "price" : 1999
        }, 
         {
            "Symbol" : "item02",
            "Date" : "2017-01-29",
            "price" : 1998
        }
        ...
    ],
    "min10" : [ 
        {
            "Symbol" : "item02",
            "Date" : "2017-01-31",
            "price" : 2010
        }, 
        {
            "Symbol" : "item02",
            "Date" : "2017-01-30",
            "price" : 2009
        }, 
         {
            "Symbol" : "item02",
            "Date" : "2017-01-29",
            "price" : 2008
        }
        ...
    ]
}
{
    "_id" : ObjectId("5acd77c763c9b117b48b2e90"),
    "Symbol" : "item03",
    "min5" : [ 
        {
            "Symbol" : "item03",
            "Date" : "2017-01-31",
            "price" : 3000
        }, 
        {
            "Symbol" : "item03",
            "Date" : "2017-01-30",
            "price" : 2999
        }, 
         {
            "Symbol" : "item03",
            "Date" : "2017-01-29",
            "price" : 2998
        }
        ...
    ],
    "min10" : [ 
        {
            "Symbol" : "item03",
            "Date" : "2017-01-31",
            "price" : 3010
        }, 
        {
            "Symbol" : "item03",
            "Date" : "2017-01-30",
            "price" : 3009
        }, 
         {
            "Symbol" : "item03",
            "Date" : "2017-01-29",
            "price" : 3008
        }
        ...
    ]
}

請問給定以下條件:
item02、 min5、 返回2條,如何查詢并返回以下格式的內(nèi)容:

[{"Symbol":"item02","Date":"2017-01-31","price":2000},{"Symbol":"item02","Date":"2017-01-30","price":1999}]

還有怎樣按數(shù)組的index操作子文檔數(shù)組里的item成員,增刪改查。

我使用的是Node.js中的mongodb包。

在網(wǎng)上和文檔里查了好久仍然不解,謝謝大神指點迷津,謝謝大家!

回答
編輯回答
小眼睛

好吧,發(fā)了問題不多久就明白該怎么做了。
直接

model.findOne({/*篩選條件*/},function(err,doc){
    //doc就是一個父文檔,然后賦給一個變量,直接操作這個變量后,直接doc.save()就好了
    let a = doc;
    // 直接操作a.['字段'][0],然后調用doc.save()就好了
    doc.save(function(err){
        if(err){
            console.log(err);
        }
    })
})
2017年7月25日 19:40