【问题标题】:SyntaxError: identifier starts immediately after numeric literal – MongoDB ErrorSyntaxError:标识符在数字文字之后立即开始 – MongoDB 错误
【发布时间】:2018-11-15 08:05:33
【问题描述】:

我正在尝试运行这个 MongoDB 脚本:

db.test_collection.insert({ 
_id: ObjectId(7df78ad8902c), 
title: ‘Mongo Db practice’, 
description: ‘this class is about MongoDB’ 
})

并不断收到此错误:

SyntaxError: identifier starts immediately after numeric literal @(shell):1:42

我认为这与 _id 和 ObjectId(7df78ad8902c) 有关,因为当我输入 ObjectId("stringliteral") 时,错误消息会发生变化。

感谢任何帮助。

【问题讨论】:

    标签: database mongodb syntax syntax-error


    【解决方案1】:

    这样试试

    db.test_collection.insert({ 
        _id: ObjectId('7df78ad8902c'), 
        title: "Mongo Db practice", 
        description: "this class is about MongoDB" 
    })
    

    对于最佳实践,不要像7df78ad8902c 这样添加_id,这不是正确的mongoId。您将来可能会遇到问题。

    如果您有任何问题,请随时提出

    【讨论】:

    • 感谢您的回复,它现在给了我这个错误:[js] 错误:无效的对象 id:长度:@(shell):2:10
    • 我刚把它改成 ObjectId('507f191e810c19729de860ea') 就可以了
    • 更好的方式是不需要手动添加_id。 Mongo 会自动创建它
    【解决方案2】:

    我在遵循https://www.tutorialspoint.com/mongodb/mongodb_quick_guide.htm 的 MongoDB 快速指南时遇到了同样的问题。插入方法的示例不正确:

    db.mycol.insert({ _id: ObjectId(7df78ad8902c), 标题:“MongoDB 概述”, description: 'MongoDB 不是 sql 数据库', by: '教程点', url: 'http://www.tutorialspoint.com', 标签: ['mongodb', '数据库', 'NoSQL'], 喜欢:100 })

    这个例子有两个问题。首先,ObjectId 需要用引号引起来。其次,该示例具有无效的对象 ID。 id 应该是一个 12 字节的十六进制值。有关什么是 12 字节十六进制值的详细信息,请参阅 https://docs.mongodb.com/manual/reference/method/ObjectId/How is a MongoDB ObjectID 12 bytes?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多