PM2/NodeJS API 有 mongoDB 索引问题

PM2/NodeJS API with mongoDB index problems

我正在尝试部署多个 NodeJS rest APIs 使用 PM2,这些 API 用于在同一本地托管数据库服务器中提供来自不同 MongoDB 数据库的数据。

我确实遇到了一些端口问题,但我确实在每个应用程序中更改它以解决问题。之后出现了一个奇怪的 mongoDB 错误。

API listen on port 3001
Connected!
MongoError: Index with pattern: { _fts: "text", _ftsx: 1 } already exists with different options
    at /var/app/my-project/node_modules/mongodb-core/lib/connection/pool.js:593:63
    at authenticateStragglers (/var/app/my-project/node_modules/mongodb-core/lib/connection/pool.js:516:16)
    at Connection.messageHandler (/var/app/my-project/node_modules/mongodb-core/lib/connection/pool.js:552:5)
    at emitMessageHandler (/var/app/my-project/node_modules/mongodb-core/lib/connection/connection.js:309:10)
    at Socket.<anonymous> (/var/app/my-project/node_modules/mongodb-core/lib/connection/connection.js:452:17)
    at emitOne (events.js:116:13)
    at Socket.emit (events.js:211:7)
    at addChunk (_stream_readable.js:263:12)
    at readableAddChunk (_stream_readable.js:250:11)
    at Socket.Readable.push (_stream_readable.js:208:10)
    at TCP.onread (net.js:597:20)

现在,API 不断重新启动并减慢所有系统。请任何人指导我扔这个,请注意我只是在维护应用程序。我不是开发人员,也不熟悉 mongo 数据库。

谢谢

检查您在哪个字段上定义了文本索引。现在 mongodb 每个集合只允许一个文本索引

db.collection.getIndexes()

你会得到这样的东西

 {
        "v" : 1,
        "key" : {
            "_fts" : "text",
            "_ftsx" : 1
        },
        "name" : "desc_text",
        "ns" : "some.ns",
        "weights" : {
            "title" : 1
        },
        "default_language" : "english",
        "language_override" : "language",
        "textIndexVersion" : 2
    }

现在如果你想在其他列中也使用这个索引,只需删除这个索引

db.collection.dropIndex('desc_text');

然后通过包含您希望被文本索引覆盖的所有列来重新创建它,

db.collection.createIndex({
    title:'text'
      ...
});