我正在尝试在微服务中设置一些功能,以便从我们的MongoDB用户群中读取。
功能如下:
import myorgSchemas from '@myorg/myorgapp-schemas'
import mongoose from 'mongoose'
const UserModel = mongoose.model('User', myorgSchemas.user)
UserModel.findOne({ _id: '5a48d25bc5686a00436bda6f' }, (error, docs) => {
console.log(error, docs)
})
当我运行它时,我首先成功获得适当的用户对象。然后,大约一秒钟后,我收到此错误,这会导致节点进程崩溃:
MongoError:未在myorg-production上授权执行命令{insert:“system.indexes”,文档:[{ns:“myorg-production.users”,key:{uniqueId:1},name:“uniqueId_1” ,unique:true,background:true}],ordered:true}
起初我认为这与我为此任务创建的db-user是read-only
(应该是)这一事实有关。但即使在授予用户写入能力之后,我也会得到一个不同的类似错误:
MongoError:E11000重复键错误索引:myorg-production.users。$ uniqueId_1 dup key:{:null}
对于它的价值,数据库由MLAB托管。知道这里发生了什么吗?我是否需要将某种read-only
标记传递到mongoose
?如果是这样,我无法在任何地方找到它。