2017-05-06 39 views
-1

好日子大家,部署asp.net项目与MongoDB的

我对访问的MongoDB一个asp.net网页API项目的工作(我是新来的吧)。我有这样的示例代码访问MongoDB的:我已经在我的机器和等上安装MongoDB的

private IMongoCollection<User> UserCollection { get; } 

    public MongoDbService(string databaseName, string collectionName, string databaseUrl) 
    { 
     var mongoClient = new MongoClient(databaseUrl); 
     var mongoDatabase = mongoClient.GetDatabase(databaseName); 
     this.UserCollection = mongoDatabase.GetCollection<User>(collectionName); 
    } 

    public async Task Add(User newUser) => await this.UserCollection.InsertOneAsync(newUser); 

    public async Task<List<User>> GetAllUsers() 
    { 
     var users = new List<User>(); 

     var allDocuments = await this.UserCollection.FindAsync(new BsonDocument()); 
     await allDocuments.ForEachAsync(doc => users.Add(doc)); 

     return users; 
    } 

,我可以连接并得到我所需要的。我的问题是 - 当有人从git下拉代码时它将如何工作?它会立即创建数据库吗?它将如何连接到它?如果用户安装了mongoDb数据库,它会创建一个本地版本的mongoDb数据库吗?或者mongoDb必须托管在服务器上供用户连接?

请告诉我,如果我不清楚我在问什么。 非常感谢

回答

1

Will it create database on the fly?

是MongoDB的将动态创建数据库,如果不存在

how will it connect to it

默认情况下,如果你没有通过任何价值MongoClient() mongodb默认为localhost

Will it create a local version of mongoDb database if the user has it installed?

没有蒙戈将在飞行

Or mongoDb must be hosted on a server for the user to connect?

没有MongoDB中提供了可以在本地安装 而是一个独立的简易版本创建它,如果你的数据库需要设置或任何其他数据为您的应用程序,您可以轻松导入它

+0

谢谢你的回答。例如,如果我没有通过“databaseUrl”,只是指定数据库的名称,它将创建一个名称的数据库,该集合将如何工作?它是否也会创建具有指定名称的默认值。 – vsarunov

+0

默认情况下,它也会创建集合 –