我有一个集合,它有一个引用另一个集合的objectId的属性 .
placeSchema = mongoose.Schema({
name: String,
category: [{ type: Schema.Types.ObjectId, ref: 'categories' }],
facilities: [{ type: Schema.Types.ObjectId, ref: 'facilities' }],
});
category
ref是 categories
集合的objectId . facilities
ref是 facilities
集合的objectId数组 .
当我填充属性时, facilities
变为 facilities
objecrts的数组,但 category
也变成了一个 category
的数组 .
Place.find(query).populate('category').populate('facilities').limit(limit).skip(offset).exec(function(err, data){
if (err) return handleError(err);
res.json(data);
});
以下是上述查询的示例:
{
"_id": "52ff59be70e8f0dfc8358cb4",
"address": {
"address_1": "Chambers Street",
"city": "Edinburgh",
"postcode": "EH1 1JF"
},
"description": "The National Museum of Scotland brings together our rich Scottish heritage with exciting international collections.",
"loc": {
"lon": -3.188384,
"lat": 55.94772
},
"name": "National Museum of Scotland",
"facilities": [
{
"_id": "53012d5b65b5e9a35efbb214",
"name": "Facility One"
},
{
"_id": "53012d6965b5e9a35efbb215",
"name": "Facility Two"
}
],
"category": [
{
"_id": "52ffbf33605d0c81f36d98e0",
"name": "Museums",
"slug": "museums"
}
]
}
这是Mongo中的文档:
{
"_id" : ObjectId("52ff59be70e8f0dfc8358cb4"),
"address" : {
"address_1" : "Chambers Street",
"city" : "Edinburgh",
"postcode" : "EH1 1JF"
},
"category" : ObjectId("52ffbf33605d0c81f36d98e0"),
"description" : "The National Museum of Scotland brings together our rich Scottish heritage with exciting international collections.",
"facilities" : [
ObjectId("53012d5b65b5e9a35efbb214"),
ObjectId("53012d6965b5e9a35efbb215")
],
"loc" : {
"lon" : -3.188384,
"lat" : 55.94772
},
"name" : "National Museum of Scotland"
}
如何填充单个 category
ref而不是数组?
1 回答
这是有道理的,因为您在模式定义中已将类别字段声明为数组:
以下应该不会将它放在一个数组(删除
[]
):假设您确实只想要一个类别 .