Node.js-MongoDB无法获取稀疏索引

时间:2019-03-24 17:25:13

标签: node.js mongodb indexing node-mongodb-native

我正在将node-mongodb-native用作Node.js应用程序的MongoDb驱动程序。这是我的插入功能:

async create(data) {
        return new Promise((resolve, reject) => {
            const datetime = Date.parse(new Date());
            data._id = new ObjectID().toString();
            data.createdAt = datetime;
            data.updatedAt = datetime;
            data.deleted = false;
            this._db.collection(this._table).ensureIndex({ 'body.flowid': 1 },
                { unique: true, dropDups: true, sparse: true },
                async (err) => {
                    if (err) { return reject('Duplicate phone number'); }
                    try {
                        await this._db.collection(this._table).insertOne(data);
                        return resolve(data);
                    } catch (error) {
                        return reject(error.message);
                    }
                });
        });
    }

'body.flowid字段上使用稀疏索引,我应该仅在该字段存在于文档中时才对该字段进行索引。然后,我尝试将两个具有相同body.flowid的文档插入集合中。两次插入均未成功。它引发了这样的错误:

Here it threw the error of duplicate index value

但是在那之后,当我尝试获取此集合的索引时。我找不到它!

Here we see only the primary <code>_id</code> index exists

我不明白这里发生了什么。该如何解决?

0 个答案:

没有答案