dotConnect for MongoDB Documentation
On this page
    Retrieving Data
    On this page

    Introduction

    This tutorial describes how to use the MongoDBCommand, MongoDBDataReader, and MongoDBDataAdapter components.

    Requirements

    This tutorial assumes that you know how to connect to the server.

    Note that if you don't use design time (specifically, if you don't place a MongoDBConnection component from the toolbox on a designer), you have to embed license information manually. This is described in the Licensing topic.

    General Information

    The main function of any database application is establishing a connection to a data source and working with the data it contains. ADO.NET data providers serve as a bridge between an application and a data source and allow you to execute commands as well as retrieve data using a DataReader or a DataAdapter. Updating data involves using the Command and DataAdapter objects.

    Retrieving Data using MongoDBCommand and MongoDBDataReader

    In this sample, we use MongoDBCommand and MongoDBDataReader to retrieve data. MongoDBDataReader reads the MongoDB cursor in batches. While you read data from it, it automatically fetches the next batch from MongoDB. MongoDBDataReader offers higher performance than MongoDBDataAdapter, especially when you query a lot of data. For more information, refer to the description of these classes in our documentation.

    using Devart.Data.MongoDB;
    ...
    class Program
    {
        static void Main(string[] args) {
    
            const string connectionString = "Host=localhost;Database=sample;User Id=user;Password=pwd;License Key=***";
            const string sql = "SELECT name, \"address.city\" FROM customers";
    
            using (MongoDBConnection connection = new MongoDBConnection(connectionString)) {
    
                connection.Open();
                using (MongoDBCommand command = connection.CreateCommand()) {
    
                    command.CommandText = sql;
                    using (var reader = command.ExecuteReader()) {
    
                        while (reader.Read()) {
    
                            Console.WriteLine("{0}\t{1}", reader.GetValue(0), reader.GetValue(1));
                        }
                    }
                }
            }
            Console.ReadKey();
        }
    
    }
    
    Imports Devart.Data.MongoDB
    ...
    Module Module1
    
        Sub Main()
    
            Const connectionString As String = "Host=localhost;Database=sample;User Id=user;Password=pwd;License Key=***"
            Const sql As String = "SELECT name, ""address.city"" FROM customers"
    
            Using connection As New MongoDBConnection(connectionString)
    
                connection.Open()
                Using command As MongoDBCommand = connection.CreateCommand()
    
                    command.CommandText = sql
                    Using reader As MongoDBDataReader = command.ExecuteReader()
    
                        While reader.Read()
    
                            Console.WriteLine(reader.GetValue(0) & vbTab & reader.GetValue(1))
                        End While
                    End Using
                End Using
            End Using
            Console.ReadKey()
        End Sub
    
    End Module
    
    

    Retrieving Data using MongoDBDataAdapter

    In this sample, we use the MongoDBDataAdapter component. It retrieves data when you call its Fill method. Note that this method retrieves all the queried data from MongoDB, which can take some time.

    Here is a small sample that demonstrates how to use MongoDBDataAdapter to retrieve data.

    
        static void Main(string[] args) {
    
            const string connectionString = "Host=localhost;Database=sample;User Id=user;Password=pwd;License Key=***";
            const string sql = "SELECT name, \"address.city\" FROM customers";
    
            using (MongoDBConnection connection = new MongoDBConnection(connectionString)) {
    
                connection.Open();
                var table = new System.Data.DataTable("customers");
    
                using (MongoDBCommand command = connection.CreateCommand()) {
    
                    command.CommandText = sql;
                    using (MongoDBDataAdapter adapter = new MongoDBDataAdapter(command)) {
                        adapter.Fill(table);
                    }
                }
    
                foreach (DataRow row in table.Rows) {
                    Console.WriteLine("{0}\t{1}", row[0], row[1]);
                }
            }
            Console.ReadKey();
        }
    
    
    
        Sub Main()
    
            Const connectionString As String = "Host=localhost;Database=sample;User Id=user;Password=pwd;License Key=***"
            Const sql As String = "SELECT name, ""address.city"" FROM customers"
    
            Using connection As New MongoDBConnection(connectionString)
    
                connection.Open()
                Dim table As New System.Data.DataTable("customers")
    
                Using command As MongoDBCommand = connection.CreateCommand()
    
                    command.CommandText = sql
                    Using adapter As New MongoDBDataAdapter(command)
                        adapter.Fill(table)
                    End Using
                End Using
    
                For Each row As DataRow In table.Rows
                    Console.WriteLine(row(0) & vbTab & row(1))
                Next
            End Using
            Console.ReadKey()
        End Sub
    
    

    Additional Information

    This tutorial describes only the basic ways of working with data. You can also use the Entity Framework ORM technology, which is intended for converting data between incompatible type systems in different data sources and object-oriented programming languages. This technology allows you to reduce the amount of code and maintenance required for data-oriented applications. For more information, see the Entity Framework Core section.

    See Also

    Entity Framework Core  | Updating Data