首页 > 解决方案 > 如何在 NodeJS 中解析 MongoDB 文档字符串

问题描述

有没有办法将用户输入的 MongoDB 文档(字符串)解析为可以插入数据库的 mongodb/Mongoose 文档?

示例字符串

'{ "name": "Dave", "location_id" : ObjectId("5d8664a9b1b0ae25d60e0e42") }'

标签: node.jsmongodb

解决方案


是的,这可以通过使用来完成JSON.parse(),不幸的是,如果您传递的数据确实有一个ObjectId()作为您的问题中的示例字符串,这将失败,因为它是无效的 JSON。

假设您的示例字符串是错误的,并且您没有尝试传入对象 id,您可以这样做:

...
const client = await mongodb.connect("connection-string");
const doc = JSON.parse('{ "name": "Dave", "location_id" : "5d8664a9b1b0ae25d60e0e42" }');

await client.db("my-db").collection("my-data").insertOne(doc);
...

如果您传入无效的 JSON,例如,ObjectId您将需要执行步骤将其删除并将其值作为字符串传递,然后location_id在插入之前手动添加属性:

...
doc.location_id = new mongodb.ObjectID(doc.location_id);
...

推荐阅读