Что делает эквивалент в mongoDB для возврата массива, который содержит имя поля? - PullRequest
0 голосов
/ 30 декабря 2011

Функция mysql в Codeigniter I Используйте list_field (), чтобы вернуть массив, содержащий имена полей.Что делает эквивалент в mongoDB для возврата массива, который содержит имя поля?В приведенном ниже коде я использую функцию list_field

function GetField($execution) {
    $query = $this->db->query($execution);
    if ($query->num_rows() > 0) {
        return $query->list_fields();
    } else {
        return array();
    }
}

Моя цель - при наличии ввода со сложными запросами столбец отображается динамически в соответствии с запросом ввода


Итак, точкаЯ хочу создавать приложения, такие как rockmongo & phpMyAdmin.Поэтому, когда мы вводим запрос, результаты совпадают с запросом, который мы вводим.Ну, я до сих пор не нашел функцию, чтобы поле bson MongoDB появлялось динамически в соответствии с запросом, данным пользователем.Пример запроса, подобного следующему:

db.users.find({}, {a:1,b:1})

, поэтому поле bson, которое появляется, это a и b.

Ответы [ 2 ]

1 голос
/ 31 декабря 2011

В MongoDB НЕТ эквивалентного запроса.Это база данных без схемы, что означает, что у каждого документа может быть совершенно другой набор полей.

0 голосов
/ 05 января 2012

Метод find возвращает итерацию курсора, и вы получите результат, который, в свою очередь, в зависимости от драйвера может быть хеш-таблицей или словарем, где его ключами являются имена атрибутов документа.

что-то в этом роде:

{"name" : "John","age" : 30, "_id" : "497ce96f395f2f052a494fd4"}

, чтобы "имена полей" были "name", "age", "_ id"

Обратите внимание

Поскольку Mongo не содержит схем для каждого документа в запросе, могут быть разные ключи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...