我在MongoDB中有我的数据,如下所示:
_id:ObjectId("59d33718050bad45ec6e6f53")
Timestamp:2017-10-03 15:07:04.145
ID:"915110933730439169"
Content:"Turn on the light"
DateCreated:2017-05-12 00:00:00.000
UserID:"862903658828017666"
Username:"Johnny"
我只需要"内容"我的一个类中的数据,我必须将这些内容分配到通用列表中。 (我不知道数据会有多少)。所以我在网上看看,我已经完成了将Bson对象反序列化为类,但后来我不知道如何只分配"内容"在列表中,因为只有"内容"将在本课程中用于其他目的。
以下是我这个班级的代码:
class Analysis
{
public static void RetrieveData()
{
var client = new MongoClient("mongodb://localhost:27017");
var database = client.GetDatabase("TrainData");
var collection = database.GetCollection<BsonDocument>("Sample1");
List<string> streamdata = new List<string>();
var filter = new BsonDocument();
var cursor = collection.FindAsync(filter).Result;
cursor.ForEachAsync(batch =>
{
streamdata.Add(BsonSerializer.Deserialize<string>(batch));
});
}
public class StreamData
{
[BsonId]
public ObjectId Id { get; set; }
public string Content { get; set; }
public string ID { get; set; }
public DateTime DateCreated { get; set; }
public string UserID { get; set; }
public string Username { get; set; }
}
我可以知道我在哪里丢失了或者我还要添加什么以便让我插入&#34;内容&#34;进入通用列表? 谢谢。
答案 0 :(得分:2)
您可以尝试使用投影来获取“内容”数据。
var data = collection.Aggregate().Project<BsonDocument>(Builders<BsonDocument>.Projection.Exclude(f => f["_id"]).Include(f => f["Content"])).ToList();
List<string> streamdata = new List<string>();
foreach(var d in data)
{
streamdata.Add(d["Content"].AsString);
}