"mongoose": "^5.7.1"
Node.js projemde kullanıyorum . Ben iki belgede güncelleme içeren bir api yapıyorum. Yani, aşağıdaki gibi işlemleri kullanıyorum:
// Start the transaction
session = await mongoose.startSession()
session.startTransaction()
await Promise.all([
<1st update operation>,
<2nd update operation>
])
// Commit the transaction
session.commitTransaction()
Bu API'yi yerel ortamımda vurduğumda, aşağıdaki hatayı alıyorum:
MongoError: Bu MongoDB dağıtımı, yeniden yazılabilir yazma işlemlerini desteklemez. Lütfen bağlantı dizenize retryWrites = false ekleyin.
Bu api'yi uzak ortamda vurduğumda iyi çalışıyor. Veritabanı bulutu olarak https://www.clever-cloud.com ve api bulutu olarak AWS kullanıyorum .
Hata mesajında yazıldığı gibi, retryWrites=false
- Firavun faresine geçen bağlantı dizesinin sonunda
mongodb://${ip}:${port}/${this.MONGO_DATABASE}?retryWrites=false
- yönteme
retryWrites: false
iletilen seçeneklerlemongoose.connect
.
mongoose.connect(`mongodb://${ip}:${port}/${this.MONGO_DATABASE}`, {
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true,
retryWrites: false
}, (err) => {...})
Yukarıdakilerin hiçbiri sorunu çözmedi.
mongo --version
Komutun çıktısı aşağıdadır :
db version v4.0.13
git version: bda366f0b0e432ca143bc41da54d8732bd8d03c0
allocator: system
modules: none
build environment:
distarch: x86_64
target_arch: x86_64
Hata ayıklama ve bu hatayı atma arkasındaki gerçek hatayı bulmak:
MongoError: İşlem numaralarına yalnızca çoğaltma kümesi üyesinde veya mongosta izin verilir
Lütfen bir şey önerin.