使用MongoDB Compass插入文档失败求助:点击插入无响应
解决MongoDB Compass插入文档无响应问题
你的插入失败是因为文档的JSON语法不符合MongoDB的要求,以下是问题点和修正方案:
问题分析
- 所有对象键名必须用双引号包裹,比如
first_name、home_address这些没加引号的键会导致解析错误 $numberDecimal的值需要是字符串格式,MongoDB Decimal类型要求用字符串形式表示,不能直接写数字- 在JSON模式下,日期不能用
new ISODate(),要改用MongoDB扩展JSON的$date格式(如果选JavaScript模式可以保留new ISODate,但键名仍需加双引号)
修正后的文档代码
{ "_id": "7", "listing_id": "677728659232692395", "arrival_date": {"$date": "2022-11-08T14:10:30Z"}, "departure_date": {"$date": "2022-11-15T14:10:30Z"}, "name": {"first_name": "Gregorius", "last_name": "Agung"}, "email": "gregorius.agung04@gmail.com", "contact": { "daytime_phone": "0921970278", "mobile": "0917820292", "postal_address": { "door": "5", "floor": "12", "street": "Swanston", "suburb": "Weribee", "state": "Victoria", "country": "Australia", "postal_code": "3003" }, "home_address": { "door": "4", "floor": "11", "street": "Swanston", "suburb": "Weribee", "state": "Victoria", "country": "Australia", "postal_code": "3003" } }, "number_of_guests": 2, "guests": [ {"name": "Marvel", "age": 22}, {"name": "Bryant", "age": 23} ], "deposit_paid": {"$numberDecimal": "120.01"}, "balance_due_amount": {"$numberDecimal": "120.01"}, "balance_due_date": {"$date": "2022-11-08T14:10:30Z"} }
操作步骤
- 打开MongoDB Compass,进入对应集合的「Insert Document」界面
- 确保右上角模式切换为「JSON」(若选「JavaScript」模式,可保留
new ISODate()写法,但键名必须加双引号) - 替换原代码为修正后的JSON
- 点击「Insert」按钮即可完成插入
内容的提问来源于stack exchange,提问作者Fearless
相关产品推荐
相关产品推荐

