Misunderstanding about bsoncxx::document::element

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Done
    • Priority: Major - P3
    • None
    • Affects Version/s: 3.0.0
    • Component/s: API
    • None
    • Environment:
      ubuntu 16_04 x64, gcc 5.4
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Is it correct to store bsoncxx::document::element in containers without storing bsoncxx::document::value (parental document)?

      I want to store a field from many documents and after transformation it to specific types... Like this:

          std::list<bsoncxx::document::element> dataFields;
          // ...
          mongocxx::cursor::iterator iter = (*current);
          bsoncxx::document::view_or_value doc(*iter);
          dataFields.push_back(doc.view()['data']);
          ++(*current);
          // ...
          for(auto data: dataFields)
          {
              if (data)
              {
                  if (data.type() == bsoncxx::type::k_document)
                  // everytime is ok
                  {
                      // ...
                  }
      
                  if (data.type() == bsoncxx::type::k_binary) 
                  // sometimes throws "SIGABRT: src/bson/bson-iter.c:390 bson_iter_type(): precondition failed: iter->raw"
                  {
                      // ...
                  }
       
              }
          }   
      

            Assignee:
            Unassigned
            Reporter:
            Andrey Kolkov
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: