我正在将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
的文档插入集合中。两次插入均未成功。它引发了这样的错误:
但是在那之后,当我尝试获取此集合的索引时。我找不到它!
我不明白这里发生了什么。该如何解决?