2016-04-27 35 views
0

我使用MongoDB(mongoose)和Nodejs创建聊天应用程序。正如你在下面看到,我有一个模式作为猫鼬允许,但我的用户storeSchema需要是一个字符串(用户名)的数组。这是做到这一点的正确方法吗?MongoDB(Mongoose)使数组成为模式的一部分

"use strict"; 
var express = require('express'); 
var mongoose = require('mongoose'); 

var userSchema = new mongoose.Schema({ 
    user: String 
}); 

var messageSchema = new mongoose.Schema({ 
    msg: String 
}); 

var storeSchema = new mongoose.Schema({ 
    users: [userSchema], // needs to be an array of users 
    channels: { 
     general: { 
      messages: [messageSchema] 
     }, 
     videogames: { 
      messages: [messageSchema] 
     }, 
     programming: { 
      messages: [messageSchema] 
     }, 
     other: { 
      messages: [messageSchema] 
     } 
    } 
}); 

var User = mongoose.model('User', userSchema); 
var Message = mongoose.model('Message', messageSchema); 
var Storage = mongoose.model('Storage', storeSchema); 

module.exports = { 
    User: User, 
    Message: Message, 
    Storage: Storage 
} 
+1

如果你想'users'是一个字符串数组,然后在定义它架构为'users:[String]'。你是这个意思吗? – JohnnyHK

+0

是的,这就是我要做的。我不确定是否必须在userSchema或storeSchema中定义它。 – dabriel

回答

0

如果你想users是用户名字符串数组,然后在storeSchema把它定义为:

users: [String]