【发布时间】:2022-06-24 01:27:56
【问题描述】:
我正在尝试使用 mongodb extended json 更新 ObjectId。
我正在使用下面插入文档。
collection.insertMany([{ parentQueryGroupId: { $oid :
"628fadb4d370987ac789c0cd" } }])
所以它就像parentQueryGroupId: { $oid : "628fadb4d370987ac789c0cd"一样存储。
但我需要将其存储为ObjectId("628fadb4d370987ac789c0cd")
这可以直接通过扩展 JSON 实现吗?问题是,服务器端查询是通用的。所以我从客户端发送数据,然后直接传递该 id 进行更新。但我需要它是 ObjectId 而不是对象。
如果存在$oid 键,我可以循环,然后我可以将其转换为ObjectId,但Mongoose 或MongoDB 是否原生支持?
【问题讨论】:
-
根据docs,
Canonical Mode和Relaxed Mode有区别,你用的是哪一个?如果您使用Relaxed Mode尝试:collection.insertMany([{ parentQueryGroupId: { Types.ObjectId("628fadb4d370987ac789c0cd") } }])类似:import {Types} from 'mongoose'; -
node js中如何定义这些模式?
-
我不知道,我不与
mongodb extended json合作。我建议你试试我写的选项,看看它是否适合你...... -
似乎文档仅适用于
bsondump mongodump mongoexport mongoimport方法而不是单个方法。如果本机不支持它,那么我找到了另一个 npm 包“EJSON”,通过它我可以将扩展的 json 转换为 json。
标签: node.js json mongodb mongoose