在Mongoose中填充时如何获得第一项?

时间:2016-03-19 19:20:57

标签: node.js mongodb mongoose mongoose-populate

我有两个模式,如下所示:

var SearchQueryItemsSchema = new mongoose.Schema({
    //...
    'auction': [{'type': mongoose.Schema.Types.ObjectId, 'ref': 'auctions'}],
    // ...
});

module.exports = mongoose.model('search_query_items', SearchQueryItemsSchema);


var AuctionsSchema = new mongoose.Schema({
    'id': mongoose.Schema.ObjectId,
    // ...
});

module.exports = mongoose.model('auctions', AuctionsSchema);

他们之间是关系many-to-one。最重要的是,当我尝试从search_query_items.find({'search_query': value}).populate('auction').exec(function(err, query)这样的数据库中获取数据时,我得到query[0]['auction'][0]而不是query[0]['auction']。是否有可能在填充时获得第一个元素?

1 个答案:

答案 0 :(得分:2)

你可以试试这个:

var SearchQueryItemsSchema = new mongoose.Schema({
//...
'auction': {'type': mongoose.Schema.Types.ObjectId, 'ref': 'auctions'}, // remove the square backet
// ...
});

您有一个数组对象,因为您定义了拍卖字段,这是一个拍卖数组