Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 无法读取mongo/node中的采集数据_Node.js_Mongodb - Fatal编程技术网

Node.js 无法读取mongo/node中的采集数据

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 我可

我正在nodeJs中试用mongoDB,但在mongoDB服务器上的db收集文件方面遇到了问题。服务器设置为窗口服务,因此它已启动并运行。我让nodejs在运行时连接到它。我做了模拟的例子,它的工作(我认为它是正确的设置)

如果我想看到在nodejs中创建的集合,它会显示它们。如果转到mongodb服务器数据库(data\db文件夹),我会看到已创建了一个集合。问题是,当我打开cmd.exe的另一个实例时,请输入mongodb并查看集合db.collections-2中的内容返回的是NaN

我可能做错了什么,或者有一个我不知道的文件丢失了。请有人给我提个建议,解释一下为什么我会生病

nodejs代码如下

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