You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB向users集合插入用户时出现SyntaxError报错如何解决

MongoDB插入数据语法错误修复方案

错误根因排查

本次抛出的SyntaxError: missing : after property id报错由以下两处语法问题导致:

  • 直接触发报错的问题出在第6行的Birthday字段定义:你错误地在Birthday下嵌套了一层对象,且将new Date作为未加引号的属性名使用,JS解析器无法识别带空格的未引号属性名,因此抛出语法错误。
  • 存在隐藏报错风险:FavoriteMovies数组中的MongoDB ObjectId值未用ObjectId()方法包裹,直接写字符串会被解析为未定义的标识符,修复语法错误后会触发新的报错。

修复方案

常规场景(生日直接存储为日期类型)

直接将Birthday赋值为Date实例,不需要额外嵌套对象,同时修正ObjectId的写法,修正后的完整代码如下:

var user1 =  {
  Username: "joonyoftv",
  Password: "joon123",
  Email: "joony@bmail.com",
  Birthday: new Date("2000-08-02"),
  FavoriteMovies: [ ObjectId("61942e53b8d3d951230f0980"), ObjectId("61943aabb8d3d951230f0983") ]
}
// 执行插入操作
db.users.insertOne(user1)

特殊场景(需要保留Birthday嵌套对象结构)

如果业务逻辑要求Birthday为嵌套对象,需要给嵌套字段指定合法的属性名,示例如下:

var user1 =  {
  Username: "joonyoftv",
  Password: "joon123",
  Email: "joony@bmail.com",
  Birthday: {
    date: new Date("2000-08-02")
  },
  FavoriteMovies: [ ObjectId("61942e53b8d3d951230f0980"), ObjectId("61943aabb8d3d951230f0983") ]
}
// 执行插入操作
db.users.insertOne(user1)

内容的提问来源于stack exchange,提问作者kuhriboh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 11:36:03