gpt4 book ai didi

node.js - mongodb在nodejs集合中找不到

转载 作者:太空宇宙 更新时间:2023-11-03 22:55:02 26 4
gpt4 key购买 nike

我连接到数据库并接收客户端。下一步是创建一个集合(表)。

db.createCollection("test", function(err, collection){    //I also tried db.collection(...
if(collection!=null)
{
collection.insert({"test":"value"}, function(error, model){console.log(model)});
}
else if(err!=null)
console.log(err);
});

现在我将创建一个集合“test”以及其中的文档(行)“test”。

接下来是获取集合的内容:

db.test.find({});    //An empty query document ({}) selects all documents in the collection

这里我收到错误:无法调用 undefined 的“find”。那么,我做错了什么?

编辑:我以这种方式连接到数据库:

var mongoClient = new MongoClient(new Server("localhost", 27017, {native_parser:true}));
mongoClient.open(function(err,mongoclient){
if(mongoclient!=null)
{
var db = mongoclient.db("box_tests");
startServer(db);
}
else if(err!=null)
console.log(err);
});

最佳答案

在 mongo 命令行中,您可以使用db.test.find({}),但在 javascript 中,到目前为止还没有办法复制该接口(interface)(也许有一天可以使用 Harmonies 代理)。

因此它会抛出错误无法调用未定义的“find”,因为数据库中没有测试

mongodb的node.js驱动的api是这样的:

db.collection('test').find({}).toArray(function (err, docs) {
//you have all the docs here.
});

另一个完整的例子:

//this how you get a reference to the collection object:
var testColl = db.collection('test');

testColl.insert({ foo: 'bar' }, function (err, inserted) {
//the document is inserted at this point.

//Let's try to query
testColl.find({}).toArray(function (err, docs) {
//you have all the docs in the collection at this point
});
});

还要记住,mongodb 是无模式的,您不需要提前创建集合。很少有像创建上限集合这样的具体情况以及其他一些情况。

关于node.js - mongodb在nodejs集合中找不到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21698934/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com