sql >> Database >  >> NoSQL >> MongoDB

TypeError:db.collection is geen functie, KAN NIET KRIJGEN

onjuiste syntaxis, je moet de eigenschap van db.collection lezen, maar dat noem je. Voorbeeld:

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

Bijvoorbeeld

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

U kunt de eigenschap 'some_value' lezen en instellen, bijvoorbeeld:

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

// STAP 2

Ok, in je methoden van database.js geef je de db-variabele door, maar dit is niet van een db-instantie, het is een mangoestmodel en je moet als volgt schrijven:

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


  1. Aanbevelingen voor Redis-clientbibliotheek voor gebruik vanuit Scala

  2. Ontvang de laatste documenten met een duidelijk criterium

  3. Bekijk het maken van documenten met MongoDB Streams

  4. MongoDB-replicasets in verschillende regio's implementeren op AWS