Mongodb Mongo DB唯一索引-日期字段上的部分筛选器表达式

Mongodb Mongo DB唯一索引-日期字段上的部分筛选器表达式,mongodb,constraints,unique,partial,Mongodb,Constraints,Unique,Partial,我们有一个集合,由于代码中的问题,很少有文档被复制。它们的数量很大(>280K)。由于前端的一些用户更新,这些记录已更新。现在,无法删除这些记录,因为这些记录上有一些事务。为了避免这种情况,我们正在考虑在创建日期创建一个带有部分表达式的唯一索引。然而,这不起作用。需要如何实现这一目标的帮助。我可以在文档中找到一个具有部分约束的唯一索引,只考虑匹配文档。 db.collection1.createIndex({"uniqueid":1},{"background&qu

我们有一个集合,由于代码中的问题,很少有文档被复制。它们的数量很大(>280K)。由于前端的一些用户更新,这些记录已更新。现在,无法删除这些记录,因为这些记录上有一些事务。为了避免这种情况,我们正在考虑在创建日期创建一个带有部分表达式的唯一索引。然而,这不起作用。需要如何实现这一目标的帮助。我可以在文档中找到一个具有部分约束的唯一索引,只考虑匹配文档。

db.collection1.createIndex({"uniqueid":1},{"background":true, "unique":true, "partialFilterExperssion":{ "created_date":{"$gte":ISODate("2021-04-27T15:30:00Z")}}})
如果您在这里看到创建的日期(将来指定为现在的时间)是2021-04-26T19:22:00,那么理想情况下,无论集合中的当前数据如何,都应该基于
partialFilterExpression
,创建此索引。然而,这给出了一个错误

{
 "ok" : 0.0,
 "errmsg" : "E11000 duplicate key error collection: lms.collection1 index: uniqueid_1 dup key: { : null }",
 "code" : 11000
}

为什么要查看现有数据来创建索引?如果您能帮助理解错误原因,我们将不胜感激。

偏滤器没有问题,不考虑偏滤器,因为“表达式”部分拼写错误。一旦纠正,它就像一个符咒。我的错