“new BsonValue[]{x,y,z} 是做什么的?

What does "new BsonValue[]{x,y,z} do?

此代码与 C# 驱动程序一起用于 select 项目文档中的项目,这些项目的位置字段值在位置 id 值范围内,我只是提供它作为示例:

 var locations = new BsonValue[] { 1, 2, 3, 4 };
 var data = collection
            .Find(Builders<BsonDocument>.Filter.In("LocationId", locations))
            .Project(x => Mapper.Map<BsonDocument, ItemViewModel>(x))
            .ToListAsync().Result;

这里BsonValue只是用来初始化一个数组吗?我在哪里可以获得更多信息?如何将常规 C# list/array 转换为该 bson 值?

BsonDocument 提供了在 C# 中表示 JSON/BSON 的灵​​活方式。创建 BsonDocument 类似于创建 JSON 个对象。

简单文档
new BsonDocument("name", "Joe") 创建 JSON { "name" : "Joe" }

更复杂的文档

new BsonDocument
{
    {"Name", "Joe"},
    {
        "Books", new BsonArray(new[]
        {
            new BsonDocument("Name", "Book1"),
            new BsonDocument("Name", "Book2")
        })
    }
}

创建JSON{"Name":"Joe", "Books" : [ { "Name":"Book1" },{ "Name":"Book2" } ]}

数组
new BsonArray(new [] {1, 2, 3}) 创建 JSON [1,2,3]

将 C# class 转换为 BsonDocument
var product = new Product{ Name = "Book", Pages = 3}.ToBsonDocument() 创建 JSON {"Name":"Book","Pages":3}

隐式转换有助于初始化变量
BsonValue bsonInt = 1;
BsonValue bsonBool = true;
new BsonValue[] { 1, 2, 3, 4 }