将新元素推入集合中对象的数组(猫鼬)

时间:2020-01-27 21:43:47

标签: node.js mongodb mongoose

我的mongoDB中有一些对象

我尝试更新对象中的数组,但不起作用

我在这里寻找许多线程并且它没有更新

对象看起来像这样

const channelSchema = new Schema({
    cid: Number | BigInt,
    posters:[]
})

每个对象的cid都不同。.

所以我试图通过cid将元素添加到发帖者数组中,而不是添加到集合中的所有对象上

多数民众赞成在我尝试过,但无法正常工作:/ 我收到了弃用警告

Channel.update({'cid':123456},{$push:{"posters":11111}});

也尝试过此方法,res显示其添加的内容,但是当我转到mongodb时,它不存在

await Channel.findOneAndUpdate({'cid':123456}, 
                    {$push: {'posters':11111}}, 
                    {new: true}, (err, res) => {

                    if(err){
                        console.log('ERROR:',err)
                    }
                    if(res){
                        console.log('RESULT:',res)
                    }
                   })

也尝试过此结果,结果与以下相同

Channel.update(
            {cid:123456},
            { $push: { posters: 11111 } }
         )


这是我得到的结果

{
2020-01-27T22:32:33.818711+00:00 app[web.1]: n: 1,
2020-01-27T22:32:33.818713+00:00 app[web.1]: nModified: 1,
2020-01-27T22:32:33.818716+00:00 app[web.1]: opTime: {
2020-01-27T22:32:33.818718+00:00 app[web.1]: ts: Timestamp { _bsontype: 'Timestamp', low_: 1, high_: 1580164353 },
2020-01-27T22:32:33.818720+00:00 app[web.1]: t: 89
2020-01-27T22:32:33.818723+00:00 app[web.1]: },
2020-01-27T22:32:33.818725+00:00 app[web.1]: electionId: 7fffffff0000000000000059,
2020-01-27T22:32:33.818727+00:00 app[web.1]: ok: 1,
2020-01-27T22:32:33.818730+00:00 app[web.1]: '$clusterTime': {
2020-01-27T22:32:33.818732+00:00 app[web.1]: clusterTime: Timestamp { _bsontype: 'Timestamp', low_: 1, high_: 1580164353 },
2020-01-27T22:32:33.818735+00:00 app[web.1]: signature: { hash: [Binary], keyId: [Long] }
2020-01-27T22:32:33.818737+00:00 app[web.1]: },
2020-01-27T22:32:33.818740+00:00 app[web.1]: operationTime: Timestamp { _bsontype: 'Timestamp', low_: 1, high_: 1580164353 }
2020-01-27T22:32:33.818742+00:00 app[web.1]: }

我在哪里错? 谢谢。

0 个答案:

没有答案