0

私の検索機能で。パラメータ '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); 

    });
4

1 に答える 1

0

この行:

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

console.log(object);MongoDB に挿入しているものを正確に使用して確認します。このコードは次と同等です

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

そのためnull、探しているドキュメントが挿入されません。

複数のドキュメントを渡したい場合は、arrayを使用します。

var object= [{'word':'TEST'},{'word':'HELL'},{'img':'terr'}];
于 2012-08-16T06:09:31.133 に答える