2016-05-10 6 views
1

は、私は、少なくとも一つの要素が含まれているカーソルを持っています。今、私はこのようにそれを行うMongoCursorの最初の要素を返す方法は?私は最初の要素だけを返したい</p> <pre><code>MongoCursor cursor = oColl.FindAs<CMongoCon>(Query.EQ("isAc", "1")); </code></pre> <p>:

foreach (CMongoCon job in cursor) 
{ 
    return job; 
} 

は、私はそれが最初の要素であることを知っているので、より簡単な方法はありますでしょうか?

答えて

0

これは機能しますか?

using System.Linq; 

... 

var whatYouAreAfter = cursor.FirstOrDefault(); 

cursor.First()も有効です。ちょうどあなたが必要なものに依存します。

はここから大きく触発さ:https://stackoverflow.com/a/19492292/2524589

+0

クイックアンサーに感謝します。しかし、私は正確な答えを見ましたが、System.Linqが含まれていても、そのSingle()プロパティはありません – Cher

+0

その例では、.SetSortOrder(sortBy).SetLimit(1) System.Linqで使用するのに有効です。 ICollectionまたはIEnumerableを返すメソッドまたは拡張メソッドがMongoCursorクラスに存在する可能性があります。 – KSib

+0

私はsystem.linqを持っているにもかかわらず、私はそれらのプロパティを使用することはできません理解できません? – Cher

0

は、なぜあなたは、単にモンゴからデータを照会するためのC#流暢APIを使用していませんか?この例は私のセットアップでうまく動作します。

public Doc GetFirstExistingDocument() 
{ 
    var client = new MongoClient(); 
    var database = client.GetDatabase("test"); 

    return database.GetCollection<Doc>("docs") 
     .Find(doc => !doc.Deleted) 
     .Sort(Builders<Doc>.Sort.Ascending(doc => doc.Date)) 
     .First(); 
} 
関連する問題