[英]Mongodb c# retrieving element
我尝试从数据库集合中检索特定元素。
collection.Find(new BsonDocument()).ForEachAsync(X => Console.WriteLine(X));
这段代码给出了这样的内容:
{“ _id”:ObjectId(“ 599d420bf2e1abfed53fe3c6”),“ no”:9,“ word”:“ write”}
{“ _id”:ObjectId(“ 599d420bf2e1abfed53fe3c8”),“ no”:10,“ word”:“ first”}
{“ _id”:ObjectId(“ 599d420bf2e1abfed53fe3ca”),“ no”:11,“ word”:“ water”}
但我只想看:
write
first
water
我怎样才能做到这一点? 谢谢
由于我不知道您的数据是什么样子,因此我创建了自己的测试样本,以便您可以看到如何使用投影来解决问题。 如您所见,我创建了一个简单的测试集合电话簿,其中包含一个文档,其中包含Word属性。 它还具有隐含的“ _id”属性 我在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%40$$w0rd@localhost";
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
我希望这可以帮助你。 如果有,请标记我的答案,并在评论中告诉我。 谢谢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.