sql >> Database >  >> NoSQL >> MongoDB

Mongoose vult (.populate()) niet in Productie (Heroku), maar werkt op Lokaal

Je API-functie ziet er goed uit.

Ik vermoed dat uw probleem is met hoe uw modellen zijn ingesteld, of wat er in uw database staat. Ik had soortgelijke problemen de eerste keer dat ik Heroku probeerde te gebruiken, omdat Localhost vergevingsgezinder is.

Om uw API te laten werken, moeten de volgende 3 dingen worden ingesteld:

(1) Model file: people.js

moet er ongeveer zo uitzien:

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;

En dan moet je een 'Friends'-model hebben, waarnaar 'People' verwijst.

(2) Model file: friends.js

moet er ongeveer zo uitzien:

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;

En tot slot, om .Populate te laten werken, heb je ten minste twee documenten in de database nodig.

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

moet er ongeveer zo uitzien:

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

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

Hopelijk helpt dit, of komt u dichter bij uw antwoord.



  1. MongoDB geïnstalleerd via Homebrew werkt niet

  2. De vereiste documenten van beide collecties in één query verkrijgen in MongoDB-3.2.7

  3. Is er een manier om een ​​cluster door te spoelen, zodat alle sleutels van master en slaves uit de db worden verwijderd?

  4. Zoeken in Objectwaarde afdeling.naam