mongo C++驱动程序中的BSON_ARRAY()为空

Empty BSON_ARRAY() in mongo C++ driver

本文关键字:ARRAY 为空 BSON C++ 驱动程序 mongo      更新时间:2023-10-16

以下内容适用于mongo C++BSON()和BSON_ARRAY()宏:

  BSONObj cr4 = BSON("providingApplication" << "http://cpr2.com" <<
                     "entities" << BSON_ARRAY(
                         BSON("id" << "E1" << "type" << "T")
                         ) <<
                     "attrs" << BSON_ARRAY(
                         BSON("name" << "A5" << "type" << "T" << "isDomain" << "false")
                         )
                     );

但是,如果我尝试为attrs字段使用一个空的BSON数组

  BSONObj cr4 = BSON("providingApplication" << "http://cpr2.com" <<
                     "entities" << BSON_ARRAY(
                         BSON("id" << "E1" << "type" << "T")
                         ) <<
                     "attrs" << BSON_ARRAY()
                     );

它不起作用(甚至不编译)。

有关于如何在mongo c++驱动程序中使用BSON宏生成空数组的提示吗?

似乎BSONArray()解决了问题:

  BSONObj cr4 = BSON("providingApplication" << "http://cpr2.com" <<
                     "entities" << BSON_ARRAY(
                         BSON("id" << "E1" << "type" << "T")
                         ) <<
                     "attrs" << BSONArray()
                     );

感谢ÖöTiib的提示!