2016-12-07 67 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} 
    });