mongodb:如何为每个数组元素创建_id?

时间:2016-01-28 14:44:12

标签: javascript node.js mongodb

有没有办法每当我在monodb数组中推送一个新元素时,会添加一个普通的_id?我记得mongoose自动做了类似的事情,但现在我使用mongodb的原生js,似乎没有插入任何_id。

示例:

chats.updateOne({_id: chat_id},
            {$push: {messages: 
                    {
                        message: data.message,
                        date: new Date(),
                    }}},
            function(err, response){}
)};

执行时,messages数组应该有常规的_id字段,消息和日期。目前它只创建消息和日期。

1 个答案:

答案 0 :(得分:2)

您可以使用ObjectId()

chats.updateOne({_id: chat_id},
            {$push: {messages: 
                    {
                        message: data.message,
                        date: new Date(),
                        _id: ObjectId()
                    }}},
            function(err, response){}
)};