在我的.NET Core应用程序中,我有带有类似道具的模型
{
public ObjectId Id { get; set; }
public bool IsDeleted { get; set; }
public string Name { get; set; }
}
并尝试进行查询:
var filter = Collection.Find(x => !x.IsDeleted);
我有这样的查询过滤器文档(filter.ToString()
(:
{ "IsDeleted": { $ne: true } }
有没有办法像这样获得过滤器?
{ "IsDeleted": false }
因为一旦bool
不可为空并且不被忽略它必须false
。
当然,我可以这样写它并且有效,但这有点奇怪:
Collection.Find(x => x.IsDeleted == false)
我尝试了[BsonRequired]
属性,并在IsDeleted
上[BsonDefaultValue(false)]
属性,但没有运气。
附言。我需要这个,因为它无法在 MongoDB 中按索引排序。例如,如果我们有复合索引{IsDeleted: 1, Name: 1}
那么collection.find({ IsDeleted: false }).sort({ Name: 1 })
将按索引排序,但collection.find({ IsDeleted: { $ne: true } }).sort({ Name: 1 })
将在内存中排序(这很糟糕(
要解决排序问题,请使用:.Sort({IsDeleted:1, Name:1})