Мангуст возвращает пустые объекты при заполнении всех? - PullRequest
0 голосов
/ 01 октября 2018

Здравствуйте, я новичок в мангусте, и я пытался воссоздать ситуацию, когда человеку назначена смена.Я создал схемы

    var shiftSchema = new mongoose.Schema({
    date: Date,
    location: String,
    job: String,
    event: String,
    calltime: Number,
    hours: Number
});

var Shift = mongoose.model("Shift", shiftSchema);

var memberSchema = new mongoose.Schema({
    id: Number,
    secondaryid: Number,
    firstname: String,
    lastname: String,
    profile: String,
    active: Boolean,
    shifts: [{
        type: mongoose.Schema.Types.ObjectId,
        ref: "Shift"
    }]
});

var Member = mongoose.model("Member", memberSchema);

и создал два члена, и каждый из них был переведен в смену.

//Members in DB
{ "_id" : ObjectId("5bb14deb574f2b0d627c7ae2"), "shifts" : [ ObjectId("5bb14deb574f2b0d627c7ae3") ], "id" : 1000001, "secondaryid" : 20000001, "firstname" : "Jane", "lastname" : "Doe", "profile" : "Admin", "active" : true, "__v" : 1 }
{ "_id" : ObjectId("5bb14e13f445e50d7ba0257d"), "shifts" : [ ObjectId("5bb14e9f19e7670d91478323") ], "id" : 1000000, "secondaryid" : 20000000, "firstname" : "John", "lastname" : "Doe", "profile" : "Admin", "active" : true, "__v" : 1 }

//Shifts in DB
{ "_id" : ObjectId("5bb14deb574f2b0d627c7ae3"), "date" : ISODate("1970-01-01T00:00:00Z"), "location" : "Office2", "job" : "Clerk2", "event" : "", "calltime" : 7, "hours" : 7, "__v" : 0 }
{ "_id" : ObjectId("5bb14e9f19e7670d91478323"), "date" : ISODate("1970-01-01T00:00:00Z"), "location" : "Office", "job" : "Clerk", "event" : "", "calltime" : 8, "hours" : 8, "__v" : 0 }

Проблема в том, что когда я запускаю следующее

Member.find({}).populate('shifts').exec(function(err, allMembers){
    if(err){
        console.log(err)
    } else {
        console.log(allMembers)
    }
})

, я получаю ответ из БД, но у "сдвигов" есть пустые объекты

[ { shifts: [ [Object] ],
    _id: 5bb14deb574f2b0d627c7ae2,
    id: 1000001,
    secondaryid: 20000001,
    firstname: 'Jane',
    lastname: 'Doe',
    profile: 'Admin',
    active: true,
    __v: 1 },
  { shifts: [ [Object] ],
    _id: 5bb14e13f445e50d7ba0257d,
    id: 1000000,
    secondaryid: 20000000,
    firstname: 'John',
    lastname: 'Doe',
    profile: 'Admin',
    active: true,
    __v: 1 } ]

Чтоя делаю не так?или мне нужно циклически проходить через все и заполнять индивидуально?

1 Ответ

0 голосов
/ 01 октября 2018

Это недоразумение.Если вы регистрируете дерево большего размера, console.log не показывает всю причину дерева, которая была бы подавляющей, но вместо этого он показывает только три вложенных объекта глубиной, поэтому следующий объект js:

 { a: { b: { c: { d: { e: 1 } } } }

отображается как:

 { a: { b: { c: [Object] } } }

Таким образом, на самом деле объект не пустой, он просто не отображается.

...