2

我正在学习如何从 vibed 使用 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);
    }
}
4

2 回答 2

2

vibe.d 存储库中有一个mongo 示例

它归结为这种模式:

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());      
}

在您的代码段中,您尝试使用集合对象而不实际连接到数据库并从那里检索它。这正是错误的含义。

于 2015-07-13T12:24:59.613 回答
0

您刚刚创建了 MongoCollection 对象,并没有使用任何东西对其进行初始化。这就是错误与“未初始化集合”有关的原因。您应该将其连接到数据库并将一些数据放入其中。看看http://vibed.org/api/vibe.db.mongo.collection/MongoCollection的例子。

于 2015-07-12T21:14:08.000 回答