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 回答