MongoClient
を使用してMongoDBに接続していますhttps://github.com/mongodb/mongo-csharp-driver/releases/tag/v2.0.0-rc
私のコード
class Program
{
static void Main(string[] args)
{
const string connectionString = "mongodb://localhost:27017";
// Create a MongoClient object by using the connection string
var client = new MongoClient(connectionString);
//Use the MongoClient to access the server
var database = client.GetDatabase("test");
var collection = database.GetCollection<Entity>("entities");
var entity = new Entity { Name = "Tom" };
collection.InsertOneAsync(entity);
var id = entity._id;
}
}
public class Entity
{
public ObjectId _id { get; set; }
public string Name { get; set; }
}
上記のコードを正常に実行した後、次のコマンドを使用してMongoDBデータベースでこのレコードを見つけることができません。
db.entities.find().pretty()
私のコードの何が問題になっていますか?
これは、MongoDBにデータを挿入するために作成したメソッドで、現在は正常に機能しています。
static async void DoSomethingAsync()
{
const string connectionString = "mongodb://localhost:27017";
// Create a MongoClient object by using the connection string
var client = new MongoClient(connectionString);
//Use the MongoClient to access the server
var database = client.GetDatabase("test");
//get mongodb collection
var collection = database.GetCollection<Entity>("entities");
await collection.InsertOneAsync(new Entity { Name = "Jack" });
}
その理由は、ストアがドキュメントを作成するのを待つ必要があるからです。この場合、collection.InsertOneAsync(entity);ドキュメントを作成する前に実行出口。
Console.ReadKey()またはcollection.InsertOneAsync(entiry).Wait()のいずれか、または他の形式の終了を数分の1秒間停止することで、トリックが実行されます。
.net 4.5以降のバージョンおよびmongodriver 2xシリーズの場合は、以下のコードに従います
var Client = new MongoClient();
var MongoDB = Client.GetDatabase("shop");
var Collec = MongoDB.GetCollection<BsonDocument>("computers");
var documnt = new BsonDocument
{
{"Brand","Dell"},
{"Price","400"},
{"Ram","8GB"},
{"HardDisk","1TB"},
{"Screen","16inch"}
};
Collec.InsertOneAsync(documnt);
Console.ReadLine();