sql >> Database teknologi >  >> NoSQL >> MongoDB

Mongoose udfylder ikke (.populate()) på produktion (Heroku), men arbejder på Local

Din API-funktion ser ok ud.

Jeg formoder, at dit problem er med, hvordan dine modeller er sat op, eller hvad der er i din database. Jeg havde lignende problemer, første gang jeg prøvede at bruge Heroku, fordi Localhost er mere tilgivende.

For at din API kan fungere, skal følgende 3 ting konfigureres:

(1) Model file: people.js

skal ligne noget som:

var mongoose = require("mongoose");
var Schema = mongoose.Schema;

var peopleSchema = new Schema({

  name: {
    type: String,
    required: true,
    trim: true
  },

  friends: [{
    type: Schema.Types.ObjectId,
    ref: "Friends"
  }]
});

const People = mongoose.model('Peoples', peopleSchema);

module.exports = People;

Og så skal du have en 'Venner'-model, som 'People' refererer til.

(2) Model file: friends.js

skal ligne:

var mongoose = require("mongoose");
var Schema = mongoose.Schema;

// Create the Comment schema
var friendsSchema = new Schema({

  friend_name: {
    type: String,
    required: true,
    trim: true
  },
});

const Friends = mongoose.model('Friends', friendsSchema);

module.exports = Friends;

Og endelig, for at .Populate kan fungere, skal du have mindst to dokumenter i databasen.

(3) Database must contain a Person doc and a Friend doc 

skal ligne:

people.js : 
    "_id": {
            "$oid": "5bef3480f202a8000984b3c5"
    }, 
    "name": "Monica Geller"
    "friends": [
        {
            "$oid": "5bef3480f202a8000984b5b4"
        }
    ]

friends.js :
    "_id": {
            "$oid": "5bef3480f202a8000984b5b4"
    },
    "friend_name": "Rachel Green"

Forhåbentlig hjælper dette, eller bringer dig tættere på dit svar.



  1. Høj tilgængelighed med Redis Sentinels:Tilslutning til Redis Master/Slave Sets

  2. Områdeforespørgsel til MongoDB-paginering

  3. Hvordan får man forbindelsesstatus i C# MongoDB-driveren v2.0?

  4. Identificer sidste dokument fra MongoDB find() resultatsæt