2017-08-23 21 views
0

データベースのコレクションから特定の要素を取得しようとしました。Mongodb C#検索要素

collection.Find(new BsonDocument()).ForEachAsync(X => Console.WriteLine(X)); 

このコードは次のように与える:

{ "_id":のObjectId( "599d420bf2e1abfed53fe3c6")、 "NO":9、 "単語": "書き込み"}

{ " _id」:のObjectId( "599d420bf2e1abfed53fe3c8")、 "NO":10、 "単語": "最初の"}

{ "_id":のObjectId( "599d420bf2e1abfed53fe3ca")、 "NO":11、 "単語": "water"}

しかし、私は見たいだけです:

write 
first 
water 

どうすればいいですか?ありがとう

答えて

0

あなたのデータがどのように見えるか分からないので、私は自分自身をテストサンプルとして作成しましたので、どのようにして問題を解決するのかを見ることができます。あなたが見ることができるように、私はそれにプロパティWordを持つドキュメントを持っている簡単なテストコレクションコールブックを作成しました。暗黙の "_id"プロパティもあります View from Studio 3T LINQPadで小さなサンプルアプリケーションを作成してデモンストレーションしました。

// Define other methods and classes here 
class Book 
{ 
    public ObjectId _id { get; set; } 
    public string Word { get; set; } 
} 

void Main() 
{ 
    var mongoConnectionString = @"mongodb://Topaz:p%[email protected]"; 
    var client = new MongoDB.Driver.MongoClient(mongoConnectionString); 
    var db = client.GetDatabase("Test"); 
    var col = db.GetCollection<Book>("Books"); 

    var filter = Builders<Book>.Filter.Empty; 
    var projection = Builders<Book>.Projection.Expression(m => m.Word); 
    var options = new FindOptions<Book, String> { BatchSize = 256, Projection = projection }; 

    var results = new List<string>(); 
    using (var cursor = col.FindAsync(filter, options).Result) 
    { 
     while (cursor.MoveNextAsync().Result) 
     { 
      var batch = cursor.Current as IList<String>; 
      results.AddRange(batch); 
     } 
    } 

    results.ForEach(a => Console.WriteLine(a)); 
} 

ここに出力があります。

 
Foo 
Bar 

私はこれがあなたを助けてくれることを願っています。もしそうなら、私の答えに印を付けて、私にコメントで知らせてください。ありがとうございました。

関連する問題