sql >> Databáze >  >> NoSQL >> MongoDB

Jak vytvořit komplexní dotaz MongoDB pomocí Powershell

řešení naleznete níže:Jedná se o flexibilní kód využívající c# uvnitř powershell skriptu a nejnovější mongo ovladače (2.2.3) - takže si můžete hrát s kódem c# podle potřeby :-)

$mongoDbDriverPath = "C:\work\mongo"
$dbName = "deser"
$collectionName = "Foo"
$Assem = ( "$($mongoDbDriverPath)\MongoDB.Bson.dll", "$($mongoDbDriverPath)\MongoDB.Driver.dll","$($mongoDbDriverPath)\MongoDB.Driver.Core.dll") 

$Source = @” 
namespace profesor79
{
    using System.Collections.Generic;

    using MongoDB.Bson;
    using MongoDB.Bson.Serialization.Attributes;
    using MongoDB.Driver;

    public static class Executor
    {
        public static List<Foo> GetData()
        {
            var connectionString = "mongodb://localhost:27017";
            var _client = new MongoClient(connectionString);
            var _database = _client.GetDatabase("deser");
            var cole = _database.GetCollection<Foo>("Foo");
            cole.InsertOne(new Foo());

            var data = cole.Find<Foo>((new BsonDocument())).ToList();
            return data;
        }

        public class Foo
        {
            public ObjectId Id { get; set; }
            [BsonDictionaryOptions]
            public Dictionary<string, string> Bar = new Dictionary<string, string>() { { "1", "text" }, { "2", "text" } };

        }
    }
}


"@

Add-Type  -ReferencedAssemblies $Assem -TypeDefinition $Source -Language CSharp  

[profesor79.Executor]::GetData()

viz snímek obrazovky:




  1. Mongodb – jsou problémy se spolehlivostí stále významné?

  2. Java MongoDB získává hodnotu pro dílčí dokument

  3. Jak zakázat protokolování java ovladače mongoDB?

  4. Errr 'mongo.js:L112 Error:Nelze se připojit k serveru 127.0.0.1:27017 na adrese src/mongo/shell/mongo.js:L112'