标签: mongodb-.net-driver

最好的GridFS C#驱动程序?

GridFS C#驱动程序的最佳实现是什么?你有什么经历?

更新:

当我说"最好"时 - 我的意思是稳定性.

谢谢!!!

c# mongodb gridfs mongodb-.net-driver

4
推荐指数
1
解决办法
2199
查看次数

如何使用10gen C#官方驱动程序设置地理值的序列化选项?

考虑此类:

public class Location
{
    public Coordinates Geo { get; set; }

    public Location()
    {
        Geo = new Coordinates();
    }

    public class Coordinates
    {
        public decimal Lat { get; set; }
        public decimal Long { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的收藏集上有一个地理空间索引,例如{ Geo: "2d" }。不幸的是,驱动程序尝试将纬度/经度坐标存储为字符串而不是数字,并且我收到一条错误消息,提示星期二3月15日16:29:22 [conn8] insert database.locations异常13026地理值必须为数字:{纬度: “ 50.0853779”,长:“ 19.931276700000012”} 1ms。为了减轻这个问题,我设置了这样的地图:

BsonClassMap.RegisterClassMap<Location.Coordinates>(cm =>
{
    cm.AutoMap();
    cm.MapProperty(c => c.Lat).SetRepresentation(BsonType.Double);
    cm.MapProperty(c => c.Long).SetRepresentation(BsonType.Double);
});
Run Code Online (Sandbox Code Playgroud)

请注意,没有BsonType.Decimal也没有类似的东西。结果,当尝试调用时,Save()我得到了一个MongoDB.Bson.TruncationException,这似乎是合乎逻辑的。我有什么选择?

c# serialization mongodb mongodb-.net-driver

4
推荐指数
1
解决办法
1848
查看次数

mongoDB重命名嵌入字段

我们如何使用C#和mongoDB重命名嵌入字段?文档Person的一个例子是:

{
Id: 1,
LastName: "Smith",
FirstName: "John",
Orders: {
         Id: 1,
         Name: "Trousers" // I want to rename **Name** into **Something**
    }
}
Run Code Online (Sandbox Code Playgroud)

使用mongoDB语法,它会是这样的

db.Users.update({}, {$rename:{"Orders.Name":"Orders.Something"}},true, true)
Run Code Online (Sandbox Code Playgroud)

谢谢.

c# mongodb mongodb-.net-driver

4
推荐指数
1
解决办法
2212
查看次数

MongoDB和SQL Server的统一数据访问层

我们的ASP.NET MVC项目同时使用MS SQL Server(对于大多数数据)和MongoDB(最不重要的东西,如审计日志,内部消息系统,通知等).所以问题是数据访问层架构在我的案例中应该是什么样的?我们使用Entity Framework POCO生成器来访问SQL Server,因为单元测试很重要,理想情况下我更喜欢扩展Entity Framework生成的IEntities接口,以便业务逻辑和UI开发人员甚至不知道实际对象的存储位置:

[GeneratedCode("Entity","0.9")]
public partial interface IEntities
{
    IObjectSet<Administrator> Administrators { get; }
    IObjectSet<User> Users { get; }
    IObjectSet<Banner> Banners { get; }
    IObjectSet<AuditLog> AuditLogs { get; }

    ...
}
Run Code Online (Sandbox Code Playgroud)

在此示例中,只有AuditLog实体存储在MongoDB中,而其余实体通过SQL Server工作.

到目前为止,我所拥有的最佳解决方案是在MongoDB C#驱动程序之上实现一个IObjectSet <T>接口,MongoRepository(http://mongorepository.codeplex.com/)项目是我的问题的一半解决方案.有谁知道更好的方法?

entity-framework mongodb-.net-driver

4
推荐指数
1
解决办法
2681
查看次数

想要将图像存储到给定URL的gridfs

是否可以直接将图像存储到mongo GridFS中,这是我从API获得的?或者我必须在本地存储然后将其插入mongo?

我试图直接从URL插入,但C#驱动程序给了我一个错误,不支持URI ..

mongodb gridfs mongodb-.net-driver

4
推荐指数
1
解决办法
1641
查看次数

MongoDB:默认情况下是否可以设置BsonElement的大小写?

我正在使用Mongodb官方驱动程序,我想默认设置元素的命名为小写,以避免这样的代码:

public class Localization
{
    [BsonId(IdGenerator = typeof(ObjectIdGenerator))]
    public int Id { get; set; }
    [BsonRequired]
    [BsonElement("country")]
    public string Country { get; set; }
Run Code Online (Sandbox Code Playgroud)

在此示例中,我希望默认情况下元素名称为"country"而不是"Country"又称小写.可能吗?

谢谢

mongodb mongodb-.net-driver

4
推荐指数
1
解决办法
2391
查看次数

使用setFields和AsQueryable的Mongodb c#驱动程序FindAll

使用MongoDB C#驱动程序,似乎我无法使用setFields通过AsQueryable获取数据,而只能通过mongo查询获取Where条件.我通过这段代码获取了文档

var query = _collection.FindAll().SetFields(fields.MongoFieldsBuilder).AsQueryable();
var query1 = query.Where(d=>d.Name="Ken").ToList();
var query2 = query.Where(d=>d.Age>=2).ToList();
Run Code Online (Sandbox Code Playgroud)

因此,当query1或query2执行时,c#driver从mongo中获取所有文档,然后在内存中过滤它.但我预计Where条件将转换为带字段的mongo查询.任何人都可以解释如何正确地做到这一点?

c# mongodb mongodb-.net-driver

4
推荐指数
1
解决办法
6009
查看次数

反序列化错误ASP.NET MongoDB

我试图通过ASP.NET MVC 4中内置的REST api退出MongoDB集合中的所有文档,当我输入localhost时遇到错误:50491/api/document:

反序列化类Acord_Rest_API.Models.Document的Id属性时发生错误:无法从BsonType ObjectId反序列化字符串.

我的控制器看起来像:

public class DocumentController : ApiController
{
    public readonly MongoConnectionHelper<Document> docs;

    public DocumentController()
    {
        docs = new MongoConnectionHelper<Document>();
    }

    public IList<Document> getAllDocs()
    {
        var alldocs = docs.collection.FindAll();
        return alldocs.ToList();
    }
}
Run Code Online (Sandbox Code Playgroud)

我的MongoDB文档是这样的吗? 在此输入图像描述

我在这里错过了什么?

我连接到DB的类:

public class MongoConnectionHelper<T> where T: class
{
    public MongoCollection<T> collection { get; private set; }

    public MongoConnectionHelper()
    {
        string connectionString = "mongodb://127.0.0.1";
        var server = MongoServer.Create(connectionString);
        if (server.State == MongoServerState.Disconnected)
        {
            server.Connect();
        }
        var conn = server.GetDatabase("Acord");
        collection = conn.GetCollection<T>("Mappings"); …
Run Code Online (Sandbox Code Playgroud)

c# rest mongodb 10gen-csharp-driver mongodb-.net-driver

4
推荐指数
2
解决办法
1万
查看次数

MongoDB UUID Standard而不是Legacy的任何性能优势?

切换到新标准UUID BinData子类型4有什么性能优势吗?我们的大部分藏品被设置为使用GuidRepresenation.CSharpLegacy这是默认为C#的驱动程序.如果我设定Mongo.Bson.BsonDefaults.GuidPresenation = Mongo.Bson.GuidRepresentation.Standard,它会有利于性能吗?还假设我们将所有现有数据转换为使用标准子类型.

mongodb mongodb-.net-driver

4
推荐指数
1
解决办法
1068
查看次数

如何用MongoDB C#驱动程序查找?

如何使用MongoDB C#驱动程序执行$ ​​lookup?我在这里的驱动程序文档中找不到它:

https://docs.mongodb.org/getting-started/csharp/query/

但是如果我在他们的JIRA中正确理解这张票,它应该在驱动程序的2.2版本中:

https://jira.mongodb.org/browse/CSHARP-1374

c# mongodb mongodb-.net-driver

4
推荐指数
2
解决办法
1万
查看次数