Простой выбор из MongoDB с вибрацией

Я учусь использовать MongoDB от Вибра. Я написал простое приложение, которое, как я думаю, должно найти операцию. Но когда я запускаю его, я получаю сообщение об ошибке: Querying uninitialized MongoCollection., Что я делаю не так?

import vibe.core.log;
import vibe.db.mongo.mongo;
import vibe.d;
import std.stdio;

import std.array;

void main()
{
    MongoCollection m_posts;
    foreach(p;m_posts.find("{}"))
    {
        writeln(p);
    }
}

2 ответа

В хранилище vibe.d есть пример монго.

Это сводится к этому шаблону:

void main()
{   
    auto db = connectMongoDB("localhost").getDatabase("test");
    auto coll = db["collection"];
    foreach (i, doc; coll.find("{}"))
        writeln("Item %d: %s", i, doc.toJson().toString());      
}

В своем фрагменте вы попытались использовать объект коллекции, не подключаясь к базе данных и не извлекая ее оттуда. Это именно то, что ошибка.

Вы просто создали объект MongoCollection и ничего не инициализировали. Вот почему ошибка об "неинициализированной коллекции". Вы должны подключить его к базе данных и поместить в него некоторые данные. Посмотрите на http://vibed.org/api/vibe.db.mongo.collection/MongoCollection примеры.

Другие вопросы по тегам