我有一个很大的JSON数组,里面有很多对象。我想插入此JSON,并为数组中的每个对象在DB中创建一个内部对象。我是MongoDB和Mongoose的新手,所以我不确定这种方法。在某些地方,我已经阅读了我需要使用insert,在某些地方,我已经阅读了我需要使用insertMany,在一些地方我已经看到了create。目前没有任何效果。我正在尝试这样做(获取数据是从远程api获取JSON的私有函数):
const mongoose = require("mongoose");
require("../../models/NFTContract");
const Contract =
mongoose.model("contracts");
let data= getData();
module.exports = app => {
app.get("/test", (req, res, next) => {
Contract.create(contracts, (err, docs) => {
if (err) {
console.log("err");
} else {
console.log("All should be inserted");
}
});
});
谢谢
答案 0 :(得分:0)
阅读these docs,了解有关insertMany的工作方式的一些解释。这是文档中的示例:
var arr = [{ name: 'Star Wars' }, { name: 'The Empire Strikes Back' }];
Movies.insertMany(arr, function(error, docs) {});
如果您有JSON,则要先解析它。假设您有此JSON(source):
{"menu": {
"header": "SVG Viewer",
"items": [
{"id": "Open"},
{"id": "OpenNew", "label": "Open New"},
null,
{"id": "ZoomIn", "label": "Zoom In"},
{"id": "ZoomOut", "label": "Zoom Out"},
{"id": "OriginalView", "label": "Original View"},
null
]
}}
如果要插入项目,请执行以下操作:
Items.insertMany(JSON.parse(myJson).menu.items, (error, docs) =>
error ? console.error(error) : console.log(docs))