我在Mongo有一个收藏集。
我有两个字段:校验和和校验和N-4。
我已经做了一个这样的过滤器:
var filter = Builders<BsonDocument>.Filter.Eq("metadata.origin", sOrigin.ToString())
& Builders<BsonDocument>.Filter.Eq("metadata.transfered", BsonNull.Value)
& Builders<BsonDocument>.Filter.Eq("metadata.duplicate", BsonNull.Value)
& Builders<BsonDocument>.Filter.Eq("metadata.malformed", BsonNull.Value);
我只想拥有校验和和校验和N-4字段不同的文档。
例如:
Cheksum : 2222222
checksumN-4 : 2222222
我想要这张记录
Checksum : 8888888
ChecksumN-4 : 8889998
我不想要这个记录
如何在c#中做到这一点?
答案 0 :(得分:0)
您可以尝试使用以下表达式创建BsonDocumentFilterDefinition
:
var builder = Builders<BsonDocument>.Filter;
var filter = builder.Eq("metadata.origin", sOrigin.ToString())
& builder.Eq("metadata.transfered", BsonNull.Value)
& builder.Eq("metadata.duplicate", BsonNull.Value)
& builder.Eq("metadata.malformed", BsonNull.Value)
& new BsonDocumentFilterDefinition<BsonDocument>(new BsonDocument(
"$expr", new BsonDocument(
"$eq", new BsonArray
{
"$checksumN-4", "$checksum"
})));