2016-12-07 2 views
1

Мне было интересно, как мы можем добавить массив строк в схему moongoose.Схема Mongoose как добавить массив

У меня есть следующий код, но он не работает:

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} 
}); 

Я говорю о users. Вы можете помочь?

+0

за документы: http://mongoosejs.com/docs/schematypes.html 'users: [String]' отлично работает, как вы его написали. Можете ли вы немного рассказать о том, что не работает с вашим кодом? – Paul

ответ

1

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

Сначала вы определяете схему:

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} 
}); 

Тогда вы должны сказать мангуста об этом:

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

Затем вы можете создать экземпляр поместить в него данные:

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!'); }); 

Если я ошибаюсь, напишите больше информации о том, что не работает.

0

попробовать этот

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

Большое спасибо, может показать мне, как обновить поле. Допустим, я хочу добавить нового пользователя, так: 'message.users.push (newUsr)'; –

+0

см. 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} 
    }); 
Смежные вопросы