nu_plugin_mongo 0.1.11

A nushell plugin to interactive with mongodb
Documentation
use crate::MongoPlugin;
use nu_protocol::{DynamicSuggestion, Span};

pub fn get_collection_names_at_current_handle(
    plugin: &MongoPlugin,
) -> Option<Vec<DynamicSuggestion>> {
    let current_handle = plugin.get_current();
    if let Ok(current_handle) = current_handle {
        get_collection_names(current_handle, plugin)
    } else {
        None
    }
}

fn get_collection_names(handle: u8, plugin: &MongoPlugin) -> Option<Vec<DynamicSuggestion>> {
    plugin
        .get_handle(handle, Span::unknown())
        .map(|db| db.list_collection_names().run().ok())
        .unwrap_or(None)
        .map(|coll_names| {
            coll_names
                .into_iter()
                .map(|name| DynamicSuggestion {
                    value: name,
                    ..Default::default()
                })
                .collect()
        })
}