我正在学习如何使用vibed中的MongoDB。我写了一个简单的app,就像我想的那样,应该做find操作。但是当我运行它的时候,我得到了错误: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);
}
}发布于 2015-07-13 20:25:00
在vibe.d存储库中有一个mongo example。
归根结底是这样的模式:
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());
}在您的代码片段中,您试图使用集合对象,但实际上并没有连接到数据库并从那里检索它。这正是error的意义所在。
发布于 2015-07-13 05:14:08
您刚刚创建了MongoCollection对象,并且没有使用任何东西对其进行初始化。这就是为什么这个错误是关于"Uninitialized Collection“的。您应该将其连接到数据库,并在其中放入一些数据。让我们看看http://vibed.org/api/vibe.db.mongo.collection/MongoCollection的例子。
https://stackoverflow.com/questions/31372495
复制相似问题