2016-01-29 3 views
0

Я новичок в мангуст, имеют мангуст схему так:мангуст - сохранить запись с несколько массивом значений

var userSchema = new mongoose.Schema({ 
    username : {type:String}, 
    password : {type:String}, 
    firstName : {type:String}, 
    lastName : {type:String}, 
    email  : {type:String}, 
    userVerified: {type:String}, 
    userType : {type:String}, 
    userGroup : [ 
     {userRoles:{type:String}} 
    ] 
},{collection:'user'}); 

и данные для свойств схемы получаемых с помощью req.body.parameters , здесь я хочу создать запись пользователя с несколькими пользовательскими ролями за один раз.

то, что я сделал это:

var userInfo = {'username':username,'password':password,'firstName':firstName,'lastName':lastName,'email':email,'userVerified':userVerified,'userType':userType,'userGroup':{'userRoles':userGroup}} 

    user(userInfo).save(function (err,doc){}); 

вставленное значение выглядит следующим образом:

{ "_id" : ObjectId("56ab511428f9f92f2b848845"), "username" : "kk", "password" : "dc468c70fb574ebd07287b38d0d0676d", "firstName" : "kk", "lastName" : "kk", "email" : "kk", "userVerified" : "1", "userType" : "user", "userGroup" : [ { "userRoles" : "[\"PHP\",\"NodeJS\"]", "_id" : ObjectId("56ab511428f9f92f2b848846") } ], "__v" : 0 } 

и нежелательные косые также в массив данных. Помогите, чтобы это было правильно. Заранее спасибо

+1

Если 'userGroup' просто массив строк, рассмотреть вопрос об изменении его определение в схеме только' UserGroup: [String] '. – JohnnyHK

+0

Как вы сказали, я изменил его, теперь результат выглядит так: «userGroup»: ["[\" PHP \ ", \" NodeJS \ ", \" Android \ ", \" Ios \ ", \" DotNet \ "]"] - почему косые черты попадают в массив, и как я могу искать пользователя, который принадлежит группе, например, «Ios» – karthik

+1

. Так что переменная 'userGroup' - это массив, который содержит _another_ массив строк вместо просто быть массивом строк. Вы не показываете, откуда эта переменная, но использование 'userGroup [0]' вместо этого было бы одним из способов исправить это. – JohnnyHK

ответ

0

Попробуйте настроить схему с помощью вложенного документа.

Если вы хотите установить свойство userGroup в качестве поддокумента, вам нужно будет следовать this. Вы бы определить схему для UserGroup отдельно:

var userGroup = new Schema({ { 
    userRoles: {type: String} 
}}); 

var userSchema = new Schema({ 
    username : {type:String}, 
    password : {type:String}, 
    firstName : {type:String}, 
    lastName : {type:String}, 
    email  : {type:String}, 
    userVerified: {type:String}, 
    userType : {type:String}, 
    userGroup : [userGroup] 
},{collection:'user'}); 
Смежные вопросы