无法读取mongo / node中的集合数据

时间:2016-11-30 02:50:26

标签: node.js mongodb

我正在尝试在nodeJs中使用mongoDB,并且在mongodb服务器上遇到了db collection文件的问题。服务器设置为窗口服务,因此它已启动并正在运行。我在运行时让nodejs连接到它。我做了模拟示例并且它有效(我认为它已正确设置)。

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

我可能做错了什么或者有一个我不知道的丢失文件。有人可以告诉我并解释为什么我会得到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()
 })

2 个答案:

答案 0 :(得分:1)

好的,你的问题中有一些问题尚不清楚,让我试着澄清一下:

您无法直接在data / db中读取集合数据,您必须使用mongo shell。

在mongo shell中,我假设是"你打开另一个cmd.exe实例,输入mongodb" ,尝试输入以下命令:

~/.zshrc

这将向您展示该系列的第一个文档' mycollection'。

但是,在您的节点代码中,您似乎没有定义集合名称? 它应该是这样的:

 use myproject 
show collections
db.mycollection.find({}) //replace 'mycollection' by the name of the collection

答案 1 :(得分:0)

我已经抛弃你的代码并纠正了一些错误, - 您必须返回console.log(error)或其他未包含的代码,否则无论如何都会运行。 - 您必须使用db.collection('name').insert(data)在集合中实际插入数据 - 您必须指定集合的​​名称db.collection('name')

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