mongodb - E 查询 [thread1] 语法错误 : identifier starts immediately after numeric literal @(shell) in 'mongodb' ?

标签 mongodb

我的第一个 mongodb 查询执行得很好,而第二个 _id 字段产生了一些错误?

for (var i = 1; i <= 25; i++){db.mediafiles.insert({x : i,from_email: '123@gmail.com'})}
WriteResult({ "nInserted" : 1 })

for (var i = 1; i <= 25; i++){db.mediafiles.insert({x : i,from_email: '123@gmail.com',_id:59193333aed3eb391e396a5d})}
E QUERY    [thread1] SyntaxError: identifier starts immediately after numeric literal @(shell):1:90

最佳答案

我将只解释第一个查询和第二个查询之间的区别。

https://docs.mongodb.com/manual/reference/method/ObjectId/

ObjectId - 是集合的唯一键。如果在 INSERT 中没有提到,mongodb 会自动填充数据。因此,第一个查询成功进行了 25 次迭代。

然而,在第二个 INSERT 查询中,您正试图填充值。因此,您需要为 ObjectId 提供唯一键。否则,您将得到 E11000 duplicate key error collection 错误。

下面的代码应该可以解决这个问题。以下代码创建了 ObjectId 并在插入中设置了值。

for (var i = 1; i <= 25; i++) { 
    id = ObjectId();
    db.AbcSchema.insert({x : i, from_email: '123@gmail.com',_id: id})
};

关于mongodb - E 查询 [thread1] 语法错误 : identifier starts immediately after numeric literal @(shell) in 'mongodb' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43972138/

相关文章:

MongoDB - 记录写入和读取查询

c# - 是否有用于 C# 的不错的 MongoDB 框架?

javascript - mongoose forEach循环并一一更新文档

javascript - Mongoose 保存到 2 集合

java - Spring : Can a class be both @Document and @Table

javascript - ember-data 以及当所有绑定(bind)和观察者更新时如何触发提交?

java - 如何在 jongo 插入函数上发送 mongodb shell 函数

database - Go MongoDB (mgo) - 不释放关闭的连接

django - 操作失败: database error: not authorized for query on database.系统.命名空间

Node.js 使用聚合查找调用 MongoDB