mongodb:如何为每个数组元素创建_id?
Posted
技术标签:
【中文标题】mongodb:如何为每个数组元素创建_id?【英文标题】:mongodb: How to create _id for each array element? 【发布时间】:2016-05-06 00:09:54 【问题描述】:有没有一种方法,每当我在 monodb 数组中 $push 一个新元素时,都会向其中添加一个普通的 _id?我记得 mongoose 会自动执行类似的操作,但现在我使用的是 mongodb 的原生 js,它似乎没有插入任何 _id。
例子:
chats.updateOne(_id: chat_id,
$push: messages:
message: data.message,
date: new Date(),
,
function(err, response)
);
在执行时,messages 数组应该有常规的 _id 字段、message 和 date。目前它只创建消息和日期。
【问题讨论】:
您需要为messages
创建架构
【参考方案1】:
你可以使用ObjectId():
chats.updateOne(_id: chat_id,
$push: messages:
message: data.message,
date: new Date(),
_id: ObjectId()
,
function(err, response)
);
【讨论】:
ObjectId() 在 NodeJS 驱动程序中与 mongo Shell 中的函数不同。替代方法是 ObjectID.createFromTime(time)。只是为了帮助未来的游客。文档:mongodb.github.io/node-mongodb-native/api-bson-generated/…以上是关于mongodb:如何为每个数组元素创建_id?的主要内容,如果未能解决你的问题,请参考以下文章