Node.js 在猫鼬中填充时如何获取第一项?
我有两个模式,如下所示:Node.js 在猫鼬中填充时如何获取第一项?,node.js,mongodb,mongoose,mongoose-populate,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); v
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);
它们之间是关系多对一
。主要的问题是,当我尝试从数据库获取数据时,比如search\u query\u items.find({'search\u query':value})、populate('auction').exec(function(err,query)
i getquery[0]['auction'][0]
而不是query[0]['auction']
。在填充时是否可能获取第一个元素?您可以尝试以下方法:
var SearchQueryItemsSchema = new mongoose.Schema({
//...
'auction': {'type': mongoose.Schema.Types.ObjectId, 'ref': 'auctions'}, // remove the square backet
// ...
});
您得到了一个数组对象,因为您定义了拍卖字段,该字段是一个拍卖数组您可以尝试以下操作:
var SearchQueryItemsSchema = new mongoose.Schema({
//...
'auction': {'type': mongoose.Schema.Types.ObjectId, 'ref': 'auctions'}, // remove the square backet
// ...
});
您得到了一个数组对象,因为您定义了拍卖字段,它是一个拍卖数组