use std::tuple to represent a bson array