Hallo ich bin neu js Knoten und Mungo ich habe zwei Systeme, und ich will Schema-Objekt innerhalb des anderen Schema meine Systemewie Sie das Schema innerhalb des Schema-Arrays posten und aktualisieren und es ausdrucken?
user.js
// grab the things we need
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var Genre = require('../Models/genre');
// create a schema
var userSchema = new Schema({
name: { type: String, required: true, unique: true , index:true},
email: { type: String, required: true, unique: true },
password: { type: String, required: true },
age: String,
gender: String,
genres: [{type: Schema.ObjectId, ref: Genre.Genre}] //this is the genre schema - the user can have many genres
});
// the schema is useless so far
// we need to create a model using it
var User = mongoose.model('User', userSchema);
// make this available to our users in our Node applications
module.exports = User;
auch
zu tun haben versucht haben,genres: [{type: Schema.Type.ObjectId, ref: Genre.Genre}]
and genres: ['Genre']
und genre.js
// grab the things we need
var mongoose = require('mongoose');
var Schema = mongoose.Schema,
ObjectId = Schema.ObjectId;
// create a schema
var genreSchema = new Schema({
name: { type: String, required: true, unique: true, index: true },
age: String,
gender: String
});
// the schema is useless so far
// we need to create a model using it
var Genre = mongoose.model('Genre', genreSchema);
// make this available to our genres in our Node applications
module.exports = Genre;
zuerst möchte ich wissen, ob es der Weg ist, das zu tun? Es gibt einen besseren Weg?
, wenn ich Benutzer von Postbote Post der Benutzer das Hinzufügen, aber ich habe nicht die volle Genre bekommen und ich weiß nicht, ob ihr Recht
gespeichertist dies die json Ich poste
{
"name":"erez",
"age": "23",
"password":"erez1234",
"email":"[email protected]",
"gender":"Male",
"genres": ["57285fe32c3c15e40c000001"] /// what should be here? is it right?
}
und das ist die erhalten Benutzer JSon
[
{
"_id": "572874be9b43cb4834000002",
"name": "erez",
"age": "23",
"password": "yaniv1234",
"email": "[email protected]",
"gender": "Male",
"__v": 0,
"genres": [
"57285fe32c3c15e40c000001"
]
}
]
wenn ihr Recht , wie ich die vollen Benutzer mit allen Genres auf einem get-Benutzer senden kann?
Hoffnung i klar genug bin
Dank für die Helfer
so der Post-Benutzer, den ich tue, ist richtig? und kann ich für alle Benutzer auffüllen? oder nur von findone? kann auch per findById funktionieren ?? – Erez
Ja, die Art, wie Sie die Daten schreiben, ist korrekt. Wie beim Lesen kann jede der Methoden 'find()' oder 'findOne()' die Funktion 'populate()' verketten, ich habe einfach findOne als Beispiel angegeben. Dies kann auf die Methode 'find()' erweitert werden, wenn Sie für alle Benutzer auffüllen möchten. – chridam
danken Sie halfen mir – Erez