sql >> Base de Datos >  >> NoSQL >> MongoDB

TypeError:db.collection no es una función, NO SE PUEDE OBTENER

sintaxis incorrecta, debe leer la propiedad de db.collection, pero llama eso. Ejemplo:

db.collection['products']!!!


db.collection['text'].save({
        title: title,
        author: author,
        text: text
    }, callback);
};

module.exports.findBookByTitle = function (db, title, callback) {
    db.collection['text'].findOne({
        title: title
    }, function (err, doc) {
        if (err || !doc) callback(null);
        else callback(doc.text);
    });
};

module.exports.findProductsByName = function (db, name, callback) {
    db.collection['products'].findOne({

Por ejemplo

var objeto ={'algún_valor':'valor','algún_método':función(){ devuelve 'resultado del método'}}

Puede leer y establecer la propiedad 'algún_valor', por ejemplo:

object['some_value'] // return 'value'
object.some_value // return 'value'

// PASO 2

Ok, en sus métodos de base de datos.js pasa la variable db, pero esto no es una instancia de db, es un modelo mangosta, y debe escribir así:

module.exports.findBookByTitle = function (model, title, callback) {
    model.findOne({
        title: title
    }, function (err, doc) {
        if (err || !doc) callback(null);
        else callback(doc.text);
    });
};

module.exports.findProductsByName = function (model, name, callback) {
    model.findOne({
        name: name
    }, function (err, doc) {
        if (err || !doc) callback(null);
        else callback(doc.products);
    });
};