$ expr является оператором оценочного запроса, поэтому перед ним должен стоять знак доллара, попробуйте:
var filter1 = new BsonDocument()
{
{"$expr",
new BsonDocument(){
{
"$gte", new BsonArray{
new BsonDocument{
{
"$divide", new BsonArray{"$nA", "$wT"}
},
},
sPacketMSItem.FromDPC.Value
}
}
}
}
};
РЕДАКТИРОВАТЬ: $expr
доступно в MongoDB 3.6 или выше, так какВ качестве запасного варианта вы можете использовать $ redact , попробуйте:
var redact = new BsonDocument()
{
{"$redact",
new BsonDocument
{
{
"$cond", new BsonDocument(){
{
"if", new BsonDocument()
{
{ "$gte", new BsonArray
{
new BsonDocument{
{
"$divide", new BsonArray{"$nA", "$wT"}
},
},
sPacketMSItem.FromDPC.Value
}
}
}
},
{ "then", "$$KEEP" },
{ "else", "$$PRUNE" }
}
}
}
}
};
var result = Col.Aggregate()
.AppendStage<BsonDocument>(redact).ToList();