MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

TypeError :db.collection n'est pas une fonction, CANNOT GET

syntaxe incorrecte, vous devez lire la propriété de db.collection, mais vous appelez cela. Exemple :

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({

Par exemple

var object ={'some_value' :'value','some_methid' :function(){ return 'method result'}}

Vous pouvez lire et définir la propriété 'some_value', par exemple :

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

// ETAPE 2

Ok, dans vos méthodes de database.js vous passez une variable db, mais ce n'est pas une instance de db, c'est un modèle de mangouste, et vous devez écrire comme ceci :

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