0

今、私はこれを使用して作業を行っています

{
    "_id": {
        "$oid": "520953dde4b00c03eeb39950"
    },
    "username": "jdoe",
    "fname": "Jave",
    "lname": "Doe",
    "role": "2",
    "pinned": [
        "5208ed90e4b0b41ab826ac9f",
        "5208edb2e4b0b41ab826aca1"
    ],
    "apps": [
        "5208ed90e4b0b41ab826ac9f",
        "5208edb2e4b0b41ab826aca1",
        "5208ee29e4b0b41ab826aca7"
    ]
}

そして、これに似たアプリケーションスキーマを参照します

{
    "_id": {
        "$oid": "5208edb2e4b0b41ab826aca1"
    },
    "name": "My Application",
    "route": "myapp",
    "icon": "http://placehold.it/80x80&text=[App]",
    "rating": 4,
    "description": "Bacon ipsum dolor sit amet nulla ham qui sint exercitation eiusmod commodo, chuck duis velit. Aute in reprehenderit, dolore aliqua non est magna in labore pig pork biltong."
}

このようなスキーマを使用してダウンポピュレートしています

var UsersSchema = Schema({
        username: String,
        fname: String,
        lname: String,
        role: String,
        apps: [{type:ObjectId, ref: "applications"}]
    }, { collection : 'user' });

var ApplicationsSchema = new mongoose.Schema({}, { collection : 'applications' });



var User = mongoose.model('user', UsersSchema);
   var Applications = mongoose.model('applications', ApplicationsSchema);

そして、このように実行します。

User.findById(id, items , function(err, doc){
                callback(doc);
            }).populate("apps");

だからここに私の質問があり ます

{
    "_id": {
        "$oid": "520953dde4b00c03eeb39950"
    },
    "username": "abritez",
    "fname": "Jave",
    **"pinned": true,**        
    "lname": "Doe",
    "role": "2",
    "apps": [
        {id : "5208ed90e4b0b41ab826ac9f", pinned:true},
        {id : "5208edb2e4b0b41ab826aca1", pinned:true},
        {id : "5208ee29e4b0b41ab826aca7", pinned:false}
    ]
}

スキーマを設定して実行を移入するにはどうすればよいですか? それとも、これは不可能ですか?私がそれをどのように見せたいかは、このようなものです。

{
  "_id": "520953dde4b00c03eeb39950",
  "fname": "Jane",
  "lname": "Doe",
  "role": "2",
  "apps": [
    {
       "pinned": true,                         
       "_id": "5208ed90e4b0b41ab826ac9f",
      "name": "App A",
      "route": "appA",
      "icon": "http://placehold.it/80x80&text=[App]",
      "rating": 4,
      "description": "Bacon ipsum dolor sit amet nulla ham qui sint exercitation eiusmod commodo, chuck duis velit. Aute in reprehenderit, dolore aliqua non est magna in labore pig pork biltong."
    },
    {
      "_id": "5208edb2e4b0b41ab826aca1",
      "pinned": true,
      "name": "App B",
      "route": "appB",
      "icon": "http://placehold.it/80x80&text=[App]",
      "rating": 4,
      "description": "Bacon ipsum dolor sit amet nulla ham qui sint exercitation eiusmod commodo, chuck duis velit. Aute in reprehenderit, dolore aliqua non est magna in labore pig pork biltong."
    },
    {
      "_id": "5208ee29e4b0b41ab826aca7",
      "name": "App C",
      "pinned": true,
      "route": "appC",
      "icon": "http://placehold.it/80x80&text=[App]",
      "rating": 4,
      "description": "Bacon ipsum dolor sit amet nulla ham qui sint exercitation eiusmod commodo, chuck duis velit. Aute in reprehenderit, dolore aliqua non est magna in labore pig pork biltong."
    }
  ]
}
4

1 に答える 1