[英]MongoDb Projection in C#
namespace mongodbconnect
{
public class Book
{
public int _id { get; set; }
public string name { get; set; }
}
class Program
{
static void Main(string[] args)
{
var mongoDbClient = new MongoClient();
var mydb = mongoDbClient.GetDatabase("mydb");
var CBook = mydb.GetCollection<Book>("Book");
var x = CBook.Find(new BsonDocument()).Project(Builders<Book>.Projection.Include("name").Exclude("_id")).ToList();
foreach(Book b in x)
{
Console.WriteLine(b._id);
Console.WriteLine(b.name);
}
Console.WriteLine("End");
Console.ReadLine();
}
}
}
foreach循环显示错误,因为无法将MongoDb.Bson.BsonDocument类型转换为mongodbconnect.Book。 我应该改变什么?
您可以使用BsonSerializer
类将自定义投影的结果BsonDocument
转换为Book
类。 由于_id
是整数,因此在C#中,您将获得int的默认值0
var CBook = mydb.GetCollection<Book>("book");
var x = CBook.Find<Book>(FilterDefinition<Book>.Empty)
.Project(Builders<Book>.Projection.Exclude(book => book._id))
.ToList()
.Select(bson => BsonSerializer.Deserialize<Book>(bson));
这个作品
var x = CBook.Find(new
BsonDocument()).Project(Builders<Book>.Projection
.Include("name").Exclude("_id")).ToList();
foreach (BsonDocument b in x)
{
Console.WriteLine(BsonSerializer.Deserialize<Bookname>(b).name);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.