私は最後のドライバを使用しています。マイドキュメントは、フォームMongoデータベースのすべての文書から1つのフィールドのリストを取得しようとしています
{
"ItemID": 292823,
....
}
の最初の問題である:私はそれらを並べ替え、すべてのアイテムIDのリストを取得しようとする、としています。しかし、私の検索では、すべての_idとItemIDのどれも戻っていません。私は間違って何をしていますか?
var f = Builders<BsonDocument>.Filter.Empty;
var p = Builders<BsonDocument>.Projection.Include(x => x["ItemID"]);
var found= collection.Find(f).Project<BsonDocument>(p).ToList().ToArray();
出力を照会しようとすると、次のようになります。
found[0].ToJson()
"{ \"_id\" : ObjectId(\"56fc4bd9ea834d0e2c23a4f7\") }"
これはItemIDが不足していて、単にmongo idを持っています。
解決方法:私はケースを台無しにしました。 itemIDではなくitemIDです。私はまだソートに問題があります。
第二の問題:私は、x [「アイテムID」] AsInt32を持っているために、第2行を変更しようとしたが、その後私はにタイプから「可能System.Int32」の子表現を書き換えエラー
とInvalidOperationExceptionがしました 'MongoDB.Bson.BsonValue'は許可されません。これは、操作の意味を に変更するためです。これが意図的な場合は、 「VisitUnary」を上書きし、この書き換えを許可するように変更してください。
私はクエリに並べ替えを追加できるようにintとしてそれらを必要とします。私の種類は以下の通りです:
var s = Builders<BsonDocument>.Sort.Ascending(x => x);
var found= collection.Find(f).Project<BsonDocument>(p).Sort(s).ToList().ToArray();
これは正しい方法ですか?