MongoDB执行insertMany()插入数据无输出无报错且记录未入库问题
问题根因
你的插入语句存在两处明显的JSON语法错误,导致Mongo Shell无法识别完整的执行语句,一直处于等待输入补全的状态,因此不会触发插入逻辑,自然不会有返回结果也不会写入数据:
insertMany()传入的数组开头多写了一个左大括号{,原代码第一行写的是db.ProductCatalog.insertMany([{,下一行紧接着又出现{,语法结构嵌套错误- 第三条戴尔笔记本的文档中,
size对象的属性后缺失英文逗号分隔:"long":15后、"width":20后都没有加逗号,不符合JSON语法规范
修正后的可执行代码
db.ProductCatalog.insertMany([ { "id":"001", "type":"laptop", "brand":"Apple", "name":"Macbook air", "price":2000, "size": { "long":12, "width":20, "high":5 }, "colour":"white", "capacity": { "weight":"1.4kg", "memory":"8GB", "HDD":"1TB" } }, { "id":"002", "type":"laptop", "brand":"HP", "name":"Model S", "price":1500, "size": { "long":13, "width":25, "high":10 }, "colour":"blue", "capacity": { "weight":"1.4kg", "memory":"10GB", "HDD":"2TB" } }, { "id":"003", "type":"laptop", "brand":"Dell", "name":"Model X", "price":2500, "size": { "long":15, "width":20, "high":15 }, "colour":"pink", "capacity": { "weight":"1.8kg", "memory":"5GB", "HDD":"1TB" } } ]);
重新执行上述修正后的代码即可完成插入,成功后Shell会返回包含所有插入文档_id的结果对象。
内容的提问来源于stack exchange,提问作者Christian Chim
相关产品推荐
相关产品推荐

