版权声明: https://blog.csdn.net/weixin_41722928/article/details/86367747
BsonElement
(Bson元素)
Bson元素是一个name/value的键值对。
-
document.Add(
new BsonElement(
"age",
21));
// OK, but next line is shorter
-
document.Add(
"age",
21);
// creates BsonElement automatically
BsonDocument
BsonDocument是name/value键值对的集合。
BsonDocument构造函数
- BsonDocument()
- BsonDocument(string name, BsonValue value)
上面是用的比较多
- BsonDocument(BsonElement element)
- BsonDocument(Dictionary<string, object> dictionary)
- BsonDocument(Dictionary<string, object> dictionary, IEnumerable<string> keys)
- BsonDocument(IDictionary dictionary)
- BsonDocument(IDictionary dictionary, IEnumerable<string> keys)
- BsonDocument(IDictionary<string, object> dictionary)
- BsonDocument(IDictionary<string, object> dictionary, IEnumerable<string> keys)
- BsonDocument(IEnumerabe<BsonElement> elements)
- BsonDocument(params BsonElement[] elements)
- BsonDocument(bool allowDuplicateNames)
创建一个新的document并且调用Add和Set函数
-
BsonDocument book =
new BsonDocument();
-
book.Add(
"author",
"Ernest Hemingway");
-
book.Add(
"title",
"For Whom the Bell Tolls");
另外一种方式
-
BsonDocument book =
new BsonDocument()
-
.Add(
"author",
"Ernest Hemingway")
-
.Add(
"title",
"For Whom the Bell Tolls");
使用c#的collection初始化语法(推荐)
-
BsonDocument book =
new BsonDocument {
-
{
"author",
"Ernest Hemingway" },
-
{
"title",
"For Whom the Bell Tolls" }
-
};
-
编译器会将它翻译成调用Add函数的方式
-
BsonDocument book =
new BsonDocument();
-
book.Add(
"author",
"Ernest Hemingway");
-
book.Add(
"title",
"For Whom the Bell Tolls");
-
不要缺少里面的大括号,不然就会像下面一样
-
BsonDocument bad =
new BsonDocument {
-
"author",
"Ernest Hemingway"
-
};
-
编译成:
-
BsonDocument bad =
new BsonDocument();
-
bad.Add(
"author");
-
bad.Add(
"Ernest Hemingway");
创建嵌套的BSON documents
-
BsonDocument nested =
new BsonDocument {
-
{
"name",
"John Doe" },
-
{
"address",
new BsonDocument {
-
{
"street",
"123 Main St." },
-
{
"city",
"Centerville" },
-
{
"state",
"PA" },
-
{
"zip",
12345}
-
}}
-
};
-
”address”是一个嵌套的document
ADD函数
- Add(BsonElement element)
- Add(Dictionary<string, object> dictionary)
- Add(Dictionary<string, object> dictionary, IEnumerable<string> keys)
- Add(IDictionary dictionary)
- Add(IDictionary dictionary, IEnumerable<string> keys)
- Add(IDictionary<string, object> dictionary)
- Add(IDictionary<string, object> dictionary, IEnumerable<string> keys)
- Add(IEnumerable<BsonElement> elements)
- Add(string name, BsonValue value)
- Add(string name, BsonValue value, bool condition)
如果里面的属性值是null的话,add函数将不把数据加入到document中
-
BsonDocument document =
new BsonDocument {
-
{
"name", name },
-
{
"city", city },
// not added if city is null
-
{
"dob", dob, dobAvailable }
// not added if dobAvailable is false
-
};
-
可以翻译成如下:
-
BsonDocument document =
new BsonDocument();
-
document.Add(
"name", name);
-
if (city !=
null) {
-
document.Add(
"city", city);
-
}
-
if (dobAvailable) {
-
document.Add(
"dob", dob);
-
}
-
如果想
add一个BsonNull值,可以使用C
#中的null联合
-
BsonDocument =
new BsonDocument {
-
{
"city", city ?? BsonConstants.Null }
-
};
获取BsonDocument的元素elements
- BsonValue this[int index]
- BsonValue this[string name]
- BsonValue this[string name, BsonValue defaultValue]
返回的是BsonValue值,例子如下
-
BsonDocument book;
-
string author = book[
"author"].AsString;
-
DateTime publicationDate = book[
"publicationDate"].AsDateTime;
-
int pages = book[
"pages",
-1].AsInt32;
// default value is -1
BsonArray
这个类是用来表示BSON 数组。
构造函数
- BsonArray()
- BsonArray(IEnumerable<bool> values)
- BsonArray(IEnumerable<BsonValue> values)
- BsonArray(IEnumerable<DateTime> values)
- BsonArray(IEnumerable<double> values)
- BsonArray(IEnumerable<int> values)
- BsonArray(IEnumerable<long> values)
- BsonArray(IEnumerable<ObjectId> values)
- BsonArray(IEnumerable<string> values)
- BsonArray(IEnumerable values)
- BsonArray Add(BsonValue value)
- BsonArray AddRange(IEnumerable<bool> values)
- BsonArray AddRange(IEnumerable<BsonValue> values)
- BsonArray AddRange(IEnumerable<DateTime> values)
- BsonArray AddRange(IEnumerable<double> values)
- BsonArray AddRange(IEnumerable<int> values)
- BsonArray AddRange(IEnumerable<long> values)
- BsonArray AddRange(IEnumerable<ObjectId> values)
- BsonArray AddRange(IEnumerable<string> values)
- BsonArray AddRange(IEnumerable values)
-
// traditional approach
-
BsonArray a1 =
new BsonArray();
-
a1.Add(
1);
-
a2.Add(
2);
-
-
// fluent interface
-
BsonArray a2 =
new BsonArray().Add(
1).Add(
2);
-
-
// values argument
-
int[] values =
new
int[] {
1,
2 };
-
BsonArray a3 =
new BsonArray(values);
-
-
// collection initializer syntax
-
BsonArray a4 =
new BsonArray {
1,
2 };
访问
-
BsonArray array =
new BsonArray {
"Tom",
39 };
-
string name = array[
0].AsString;
-
int age = array[
1].AsInt32;