通过运行node my-script.js
,此代码可以正确退出:
const mongoose = require('mongoose')
const FooSchema = new mongoose.Schema({
name: {type: String, required: true}
})
const Foo = mongoose.model('Foo', FooSchema)
mongoose.connect('mongodb://localhost/foo')
mongoose.disconnect()
但这不是:
const mongoose = require('mongoose')
const FooSchema = new mongoose.Schema({
name: {type: String, required: true}
})
FooSchema.index({name: 'text'})
const Foo = mongoose.model('Foo', FooSchema)
mongoose.connect('mongodb://localhost/foo')
mongoose.disconnect()
错误是:
MongoError:拓扑已被破坏
这里唯一的区别是我使用了index
功能。有没有办法在其他任何事情之前“执行” index
函数以便干净地退出?
侧面说明:我想确保在此行之后:FooSchema.index({name: 'text'})
实际上已创建索引。
答案 0 :(得分:0)
您收到的错误是由于执行写操作时断开连接引起的。
如果您等待+---+----+-------+----------+-----+------+
| id|name|testing|avg_result|score|active|
+---+----+-------+----------+-----+------+
| 1| sam| null| null| null| True|
| 2| Ram| True| 0.05| 10| False|
| 3| Ian| False| 0.01| 1| False|
| 4| Jim| False| 1.2| 3| True|
+---+----+-------+----------+-----+------+
事件断开连接,则应该解决此问题:
'index'