2017-01-17 1 views
0

Я не уверен, почему Schema.ObjectId не работает над моей моделью, у меня есть последняя версия мангуста.Schema.ObjectId не работает?

это моя модель

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 
var ObjectId = Schema.ObjectId; 

var TeamSchema = new mongoose.Schema({ 
    team_name : { 
     type: String, 
     index : true 
    }, 
    dateCreated : { 
     type : Date 
    }, 
    memberId : { 
     type : Schema.Types.ObjectId 
    } 
}); 

var Team = module.exports = mongoose.model('Team', TeamSchema); 


module.exports.createTeam = function(newTeam, callback){ 

    newTeam.save(function(err){ 
     if (err) throw err; 
    }); 

} 

Я также попытался это post до сих пор не работает. может ли кто-нибудь помочь в этом? благодаря

это JSON файл из моих данных, и его странно MemberID не показывает

[ 
    { 
    "_id": "587da4a9141f1619f42ac66d", 
    "dateCreated": "2017-01-17T04:59:21.000Z", 
    "team_name": "Sample Team", 
    "__v": 0 
    } 
] 
+0

Вы уверены, что сохранили идентификатор объекта в БД? http://stackoverflow.com/a/13851334/1893672 Протестируйте его перед сохранением, чтобы убедиться, что это объект. –

+0

Я хочу объявить memberId как Schema.ObjectId, но его не работает –

ответ

0

Я не вижу ничего плохого в вашей схеме.

Mongoose определяет новый ObjectId только для поля _id. Для всех остальных полей типа ObjectId вам необходимо передать новое значение ObjectId.

Так, если поле memberId для проведения ObjectId, который относится к элементу в другой коллекции (например, членов), вы можете передать значение члена коллекции членов _id в memberId. (Также добавление ref в вашей схеме в этой коллекции будет полезно)

Если MemberID это совершенно новый ObjectId и не связаны с какой-либо другой коллекции, то вы можете создать новый уникальный ObjectId с функцией mongoose.Types.ObjectId() и сохранить это поле memberId.

Так что перед сохранением newMember:

newMember.memberId = mongoose.Types.ObjectId(); 

Надежда, что помогает!