c#MongoDB在使用过滤器时使用camelCased字段名
我有一个不可变的模型类,它通过BsonClassMap.RegisterClassMap映射到mongo。如果我理解正确,当我想用camelCased names将属性存储到数据库中时,约定包将不起作用,所以我必须使用SetElementName方法手动设置它,如下所示c#MongoDB在使用过滤器时使用camelCased字段名,c#,mongodb,C#,Mongodb,我有一个不可变的模型类,它通过BsonClassMap.RegisterClassMap映射到mongo。如果我理解正确,当我想用camelCased names将属性存储到数据库中时,约定包将不起作用,所以我必须使用SetElementName方法手动设置它,如下所示 BsonClassMap.RegisterClassMap<Document>(cm => { cm.MapIdMember(d => d.Id).SetElementName("id");
BsonClassMap.RegisterClassMap<Document>(cm =>
{
cm.MapIdMember(d => d.Id).SetElementName("id");
cm.MapProperty(d => d.SchemaId).SetElementName("schemaId");
cm.MapProperty(d => d.Filename).SetElementName("filename");
cm.MapProperty(d => d.Content).SetElementName("content");
cm.MapCreator(d => new Document(d.Id, d.SchemaId, d.Filename, d.Content));
});
BsonClassMap.RegisterClassMap(cm=>
{
cm.MapIdMember(d=>d.Id).SetElementName(“Id”);
cm.MapProperty(d=>d.SchemaId).SetElementName(“SchemaId”);
cm.MapProperty(d=>d.Filename).SetElementName(“文件名”);
cm.MapProperty(d=>d.Content).SetElementName(“Content”);
MapCreator(d=>新文档(d.Id,d.SchemaId,d.Filename,d.Content));
});
问题在于过滤。我想过滤camelCased属性,由于某些原因,有些属性可以工作,有些则不能
var fBuilder = Builders<Document>.Filter;
fBuilder.Eq("id", Guid.Parse("9e50b066-4320-4c30-9ce1-e939fb13836d")),
这将工作并生成一个具有给定Id的文档
var fBuilder = Builders<Document>.Filter;
fBuilder.Eq("Id", Guid.Parse("9e50b066-4320-4c30-9ce1-e939fb13836d")),
var fBuilder=Builders.Filter;
fBuilder.Eq(“Id”,Guid.Parse(“9e50b066-4320-4c30-9ce1-e939fb13836d”),
但事实并非如此
var fBuilder = Builders<Document>.Filter;
fBuilder.Eq("id", Guid.Parse("9e50b066-4320-4c30-9ce1-e939fb13836d")),
var fBuilder=Builders.Filter;
fBuilder.Eq(“id”,Guid.Parse(“9e50b066-4320-4c30-9ce1-e939fb13836d”),
这是可行的,尽管我认为不应该这样
var fBuilder = Builders<Document>.Filter;
fBuilder.Eq("Filename", "document.json"),
var fBuilder=Builders.Filter;
fBuilder.Eq(“文件名”、“document.json”),
令人惊讶的是,这也是我想要的所有属性
var fBuilder = Builders<Document>.Filter;
fBuilder.Eq("filename", "document.json"),
var fBuilder=Builders.Filter;
fBuilder.Eq(“文件名”、“document.json”),
我认为这与房产类型有关
var fBuilder = Builders<Document>.Filter;
fBuilder.Eq("filename", "document.json"),
目前我正在使用MongoDB.Driver 2.9
编辑:使用SortDefinition进行排序时,不会出现这样的问题,而且一切正常