C# 使用Mongo驱动程序将文件上载到Mongo Atlas
我正在用C#Mongo驱动程序将一个文件上传到Mongo Atlas。但我不知道如何连接到类MongoServer设置。我试过这个:C# 使用Mongo驱动程序将文件上载到Mongo Atlas,c#,mongodb,mongodb-replica-set,C#,Mongodb,Mongodb Replica Set,我正在用C#Mongo驱动程序将一个文件上传到Mongo Atlas。但我不知道如何连接到类MongoServer设置。我试过这个: private static MongoServerSettings GetMongoConfig() { var credential = MongoCredential.CreateCredential("admin", "XXXX", "XXXX"); MongoServerAddress[] servers = new MongoServ
private static MongoServerSettings GetMongoConfig()
{
var credential = MongoCredential.CreateCredential("admin", "XXXX", "XXXX");
MongoServerAddress[] servers = new MongoServerAddress[3];
servers[0] = new MongoServerAddress("cluster0-shard-00-00-XXXXX.mongodb.net", 27017);
servers[1] = new MongoServerAddress("cluster0-shard-00-01-XXXX.mongodb.net", 27017);
servers[2] = new MongoServerAddress("cluster0-shard-00-02-XXXX.mongodb.net", 27017);
var ServerSetting = new MongoServerSettings {
ConnectionMode = ConnectionMode.ReplicaSet,
UseSsl = true,
Servers = servers,
ReplicaSetName = "Cluster0-shard-0",
Credentials = new[]{ credential },
};
return ServerSetting;
}
public static void SavePDFInvoice(HttpPostedFileBase file,string fileID, string userID, string userOwner)
{
var Server = new MongoServer(GetMongoConfig());
var grid = new MongoGridFS(Server, PDFDatabase, new MongoGridFSSettings());
grid.Upload(file.InputStream, fileID, new MongoGridFSCreateOptions
{
Id = fileID,
Metadata = new BsonDocument {
{ "userID", userID},
{ "userOwner", userOwner},
}
});
}
但是,它不起作用
我可以连接mongoclient类,但我不知道如何使用MongoGridFS类。您可以查看此链接,了解如何使用C连接mongodb Atlas# 从链接: 要连接到Atlas M0(免费层)群集,必须使用支持MongoDB 3.4的C#/.Net驱动程序版本
var client = new MongoClient("your clister url");
var database = client.GetDatabase("test");
您应该使用一个
GridFSBucket
,它接受提供的IMongoDatabase
参数,该参数是通过MongoClient
获得的连接获得的。似乎您正在尝试使用不推荐使用的接口。相反,按照文档中的说明去做。您似乎试图在公开的方法中“连接”。不要那样做。而是在应用程序的生命周期中保持和MongoDB的连接。然后仅使用这些方法选择当前数据库命名空间或集合命名空间,以适合使用的方法。“每个请求”重新实例化和挂断数据库连接不是推荐的模式。谢谢Neil,你说得对。请在回答中发布链接信息的主要部分。在未来,这种联系可能会被打破,而这个答案将毫无用处。非常感谢。