1

私は多層スキーマを持っています:

{
  a:String,
  aList: 
  [
     {
        b:String,
        bList:
        [
            {
                c:String,
                cList 
                [
                   d1:String
                   d2:String   
                ]
            }  
        ] 
     }
  ]
} 

問題は、私が次のように取得するときです

A.find( {a:aid, "aList.b":bid}, {_id:0, "aList.$.bList" : 1})

bListは常に文字列のリストとして返され、元のデータを取得できません

{
  aList:
  [
     {
        bList: [ "[object Object]", "[object Object]", "[object Object]"] 
     }
  ]
} 
4

2 に答える 2

1

スキーマを次のように定義すると、問題が解決しました。

var cSchema = mongoose.Schema({c:String,
    cList[
       d1:String
       d2:String   
    ]
});

var bSchema = mongoose.Schema({c:String,
    b:String,
    bList:
    [cSchema]
});


var aSchema = mongoose.Schema({
    a:String,
    aList: [bSchema]
});
于 2013-02-01T14:29:12.273 に答える
-1

使用する場合は、jsonオブジェクトとして使用してください。印刷する場合は、印刷に使用printjson()します。

db.sample.find().foreach(function(e){ printjson(e)})
于 2013-02-01T18:57:26.433 に答える