BSONElement
类有一个embeddedObject()
方法在BSON元素中返回BSONObj
“encoded”,例如:
// being 'be' a BSONElement object
BSONObj b = be.embeddedObject();
但是,有时BSONElement
对象会编码BSONArray
(来自BSONObj
的派生类),我想直接得到它。像
// being 'be' a BSONElement object
BSONArray b = be.embeddedArray();
但我在the MongoDB C++ driver documentation reference that I know中找不到embeddedArray()
或类似内容。
我在Array()
类中找到了BSONElement
方法,但它返回std::vector<BSONElement>
并根据向量内容编写等效的BSONArray
会更加复杂(考虑到我们认为向量中的每个元素可以是不同类型的,即字符串,数字,其他BSON对象或数组等。)
有没有办法直接在BSONElement
中“编码”BSONArray?
答案 0 :(得分:0)
似乎可以通过以下方式投射到BSONArray b = (BSONArray) be.embeddedObject();
:
type()
此演员表在一般情况下是不安全的,但与be
结合使用,我们可以确保.columns {
height: 400px;
-webkit-columns: 300px 2;
-moz-columns: 300px 2;
columns: 300px 2;
}
实际上持有嵌入式数组。
但是,我仍然想知道是否有更聪明的方法......请随意用其他方法为这个问题添加新的答案。