Mongodb插入和发现节点js?

时间:2012-08-16 01:57:19

标签: node.js mongodb

在我的查找功能中。参数'item'始终为Null。我想知道插入或查找我的代码是否存在一些问题。我该怎么解决?

    var express = require('express');
    var routes = require('./routes');
    var socket = require('socket.io');
    var fs = require('fs');
    var app = module.exports = express.createServer();
    var Server = require('mongodb').Server,
        Db = require('mongodb').Db,
        Connection = require('mongodb').Connection;
    var host = 'localhost';
    var port = Connection.DEFAULT_PORT;
    var db = new Db('node-mongo-examples', new Server(host, port, {}), {native_parser:false});
    var id ;


    db.open(function(err, db) {
        //console.log('opened');   
        app.listen(3000); 

    });

    db.collection('locations', function(err, collection) {
         var object= ({'word':'TEST'},{'word':'HELL'},{'img':'terr'});
         collection.insert(object,  function(err, result) {
            console.log(result);
            id = object._id;
            collection.find({'word':'TEST'}).toArray(function(err, items){

                    console.log('item' +items);// <-- The item is always NULL
            });  


        });
     });

然后我将我的代码更改为....

但它仍然有关于“无法调用null的方法集合”的错误。

    db.open(function(err, db) {
            db.collection('locations', function(err, collection) {
                var object= ({'word':'TEST'},{'word':'HELL'},{'img':'terr'});
            collection.insert(object,  function(err, result) {
                console.log(result);
                id = object._id;
                collection.find({'word':'TEST'}).toArray(function(err, items){
                    if(err)
                        console.log(err);
                    else
                        console.log('item' +items);
                });  


                });
        });
        app.listen(3000); 

    });

1 个答案:

答案 0 :(得分:0)

这一行:

var object= ({'word':'TEST'},{'word':'HELL'},{'img':'terr'});

使用console.log(object);并准确查看您插入MongoDB的内容。此代码等同于

var object = {'img':'terr'};

这就是为什么你总是得到null - 你没有插入你想要的文件。

如果您想传递多个文档,请使用数组

var object= [{'word':'TEST'},{'word':'HELL'},{'img':'terr'}];