【发布时间】:2021-08-31 03:28:21
【问题描述】:
{
acknowledged: true,
insertedId: new ObjectId("612d9d08db9c20f031033478")
}
这是我在向 MongoDB 添加文件和其他一些东西时得到的 JSON 格式,我想单独获取这个 id 以将文件保存到另一个文件夹。
谁能解释一下?
【问题讨论】:
标签: node.js mongodb express object hbs
{
acknowledged: true,
insertedId: new ObjectId("612d9d08db9c20f031033478")
}
这是我在向 MongoDB 添加文件和其他一些东西时得到的 JSON 格式,我想单独获取这个 id 以将文件保存到另一个文件夹。
谁能解释一下?
【问题讨论】:
标签: node.js mongodb express object hbs
我相信 Vikas 在这个帖子 How to get value from specific key in NodeJS JSON [duplicate] 中回答了这个问题
编辑了答案。现在它适用于上述对象
您可以使用以下函数来访问 JSON 的键。我有 专门返回 'mm' 键。
function jsonParser(stringValue) {
var string = JSON.stringify(stringValue);
var objectValue = JSON.parse(string);
return objectValue['mm'];
}
【讨论】:
如果这是一个 JSON 字符串,首先你必须将它解析为对象 liertal,然后你可以访问你提到的指定属性,所以你可以这样做:
function parseJsonString(jsonString) {
// first parse it to object
var obj = JSON.parse(jsonString);
// now access your object property/key
var id = obj.insertedId;
}
【讨论】:
如果您在 mongodb shell 或 Robo3T 上执行此操作,则代码行将是:
db.collection_name.find({},{insertedId:1})
这与projection 有关。 1 表示您希望将其显示为您的输出。
在您的情况下,您只希望显示对象 id 的值,您必须使用 .valueOf() ;那是ObjectId().valueOf()。
-> insertedId: new ObjectId("612d9d08db9c20f031033478")
-> ObjectId("612d9d08db9c20f031033478").valueOf()
->
-> 612d9d08db9c20f031033478
您可以参考这个:https://docs.mongodb.com/manual/reference/method/ObjectId.valueOf/ 站点供您参考。
所以你可以在你的代码中使用这个.valueOf(),并把id保存在文档中
【讨论】: