Node.js 无法读取mongo/node中的采集数据
我正在nodeJs中试用mongoDB,但在mongoDB服务器上的db收集文件方面遇到了问题。服务器设置为窗口服务,因此它已启动并运行。我让nodejs在运行时连接到它。我做了模拟的例子,它的工作(我认为它是正确的设置) 如果我想看到在nodejs中创建的集合,它会显示它们。如果转到mongodb服务器数据库(data\db文件夹),我会看到已创建了一个集合。问题是,当我打开cmd.exe的另一个实例时,请输入mongodb并查看集合db.collections-2中的内容返回的是NaN 我可能做错了什么,或者有一个我不知道的文件丢失了。请有人给我提个建议,解释一下为什么我会生病 nodejs代码如下Node.js 无法读取mongo/node中的采集数据,node.js,mongodb,Node.js,Mongodb,我正在nodeJs中试用mongoDB,但在mongoDB服务器上的db收集文件方面遇到了问题。服务器设置为窗口服务,因此它已启动并运行。我让nodejs在运行时连接到它。我做了模拟的例子,它的工作(我认为它是正确的设置) 如果我想看到在nodejs中创建的集合,它会显示它们。如果转到mongodb服务器数据库(data\db文件夹),我会看到已创建了一个集合。问题是,当我打开cmd.exe的另一个实例时,请输入mongodb并查看集合db.collections-2中的内容返回的是NaN 我可
var MongoClient=require('Mongodb').MongoClient,format = require('util').format;
var url = 'mongodb://localhost:27017/myproject';
MongoClient.connect(url,function(err,db){
if(err){
console.log(err);
}
else{
console.log("connected to", url );
}
var user1 = {name: 'modulus admin', age: 42, roles: ['admin', 'moderator', 'user']};
var user2 = {name: 'modulus user', age: 22, roles: ['user']};
var user3 = {name: 'modulus super admin', age: 92, roles: ['super-admin', 'admin', 'moderator', 'user']};
collection.find({name: 'modulus user', roles: 'user'}).toArray(function(err, result) {
if (err) {
console.log(err);
} else if (result.length) {
console.log('Found:', result);
} else {
console.log('No document(s) found with defined "find" criteria!');
}
})
db.close()
})
好的,你的问题中有几点不清楚,让我试着澄清一下: 您将无法在data/db中直接读取采集数据,必须使用mongo shell 在mongo shell中,我假设您通过“打开cmd.exe的另一个实例并输入mongodb”来引用它,请尝试输入以下命令:
use myproject
show collections
db.mycollection.find({}) //replace 'mycollection' by the name of the collection
这将显示集合“mycollection”的第一个文档
但是,在节点代码中,似乎没有定义集合名称?
应该是这样的:
var collection = db.collection('mycollection')
collection.find({name: 'modulus user', roles: 'user'}).toArray(...
我已经扔掉了你的代码并改正了一些错误, -您必须返回您的
控制台.log(错误)
,否则未包装的代码将继续运行。
-您必须使用db.collection('name').insert(data)
-您必须指定集合的名称db.collection('name')
好的,谢谢,我尝试了你的建议,但我得到了…[thread1]引用错误:集合未定义@(shell):1:1
var MongoClient=require('mongodb').MongoClient
var format = require('util').format;
var url = 'mongodb://localhost:27017/myproject';
MongoClient.connect(url,function(err,db){
if(err){
return console.log(err); // return your response otherise the code that isn't
// wrapped in else will get run anyway
}
else{
console.log("connected to", url );
}
var user1 = {name: 'modulus admin', age: 42, roles: ['admin', 'moderator', 'user']};
var user2 = {name: 'modulus user', age: 22, roles: ['user']};
var user3 = {name: 'modulus super admin', age: 92, roles: ['super-admin', 'admin', 'moderator', 'user']};
// insert data
db.collection('users').insert(user1)
db.collection('users').insert(user2)
db.collection('users').insert(user3)
// collect data from users table
db.collection('users').find({name: 'modulus user', roles: 'user'}).toArray(function(err, result) {
if (err) {
console.log(err);
} else if (result.length) {
console.log('Found:', result);
} else {
console.log('No document(s) found with defined "find" criteria!');
}
})
db.close()
})