2016-12-07 69 views
1

我想知道如何在moongoose綱要中添加一個字符串數組。貓鼬綱要如何添加數組

我有以下的代碼,但它不工作:

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'用戶:[字符串]'工作正常,因爲你寫了它。你可以詳細解釋一下哪些代碼不適用? – 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} 
    });