2016-12-07 3 views
1

Ich frage mich, wie können wir ein Array von String in einem Moongoose-Schema hinzufügen.Mongoose Schema, wie man ein Array hinzufügt

Ich habe den folgenden Code, aber es funktioniert nicht:

var message = new Schema({ 
    topic: String, 
    content: String, 
    restriction:String, 
    sender:String, 
    reciever:String, 
    users:[String], 
    read:{type: String, default: 'no'}, 
    like:{ type: Number, default: 0 }, 
    created_at: {type: Date, default: Date.now} 
}); 

ich spreche users. Kannst du helfen?

+0

für die Dokumente: http://mongoosejs.com/docs/schematypes.html 'Benutzer: [String]' funktioniert gut, wie Sie es geschrieben haben. Können Sie etwas erläutern, was nicht mit Ihrem Code funktioniert? – Paul

Antwort

1

zusammen cobbling was Sie gesagt haben Ihre Kommentare in und der Hauptpost, ich nicht denken helfen kann, aber Sie den Modellierungsschritt von Mungo sind vermisst.

Zuerst definieren Sie das Schema:

const mongoose = require('mongoose'); 
const Schema = mongoose.Schema; 

var MessageSchema = new Schema({ 
    topic: String, 
    content: String, 
    restriction:String, 
    sender:String, 
    reciever:String, 
    users:[String], 
    read:{type: String, default: 'no'}, 
    like:{ type: Number, default: 0 }, 
    created_at: {type: Date, default: Date.now} 
}); 

Dann müssen Sie Mungo darüber erzählen:

const Message = mongoose.model('Message', MessageSchema); 

Dann können Sie eine Instanz erstellen, um Daten setzen in:

mongoose.connect('mongodb://localhost:27017/mydb'); // assuming that's a working mongo instance 
let message = new Message(); 
message.users.push('Juliana'); 
message.save((e,u) => { console.log('New user saved!'); }); 

Wenn ich falsch liege, posten Sie bitte weitere Informationen darüber, was nicht funktioniert.

0

versuchen, diese

var message = new Schema({ 
     topic: String, 
     content: String, 
     restriction:String, 
     sender:String, 
     reciever:String, 
     users:[ 
     {name: String}], 
     read:{type: String, default: 'no'}, 
     like:{ type: Number, default: 0 }, 
     created_at: {type: Date, default: Date.now} 

    }); 
+0

Vielen Dank können Sie mir zeigen, wie Sie das Feld aktualisieren. Sagen wir, ich möchte einen neuen Benutzer hinzufügen, ist es so: 'message.users.push (newUsr)'; –

+0

verweisen Sie diese http://stackoverflow.com/a/23452838/5735460 –

0
var message = new Schema({ 
     topic: String, 
     content: String, 
     restriction:String, 
     sender:String, 
     reciever:String, 
     users:[{ 
     type: String 
     }], 
     read:{type: String, default: 'no'}, 
     like:{ type: Number, default: 0 }, 
     created_at: {type: Date, default: Date.now} 
    });