Node.js Mongoose在架构集合数组中查找
我正在尝试查找在其数组中具有匹配项的文档 模式名称是food,下面就是它Node.js Mongoose在架构集合数组中查找,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我正在尝试查找在其数组中具有匹配项的文档 模式名称是food,下面就是它 var foodSchema = { "store_id": String, 'food': [{ 'dish': String }] }; var store = mongoose.model('store', storeSchema); module.exports = { store: store, food: food } 这是控制器 dbModel.food.find({
var foodSchema = {
"store_id": String,
'food': [{
'dish': String
}]
};
var store = mongoose.model('store', storeSchema);
module.exports = { store: store, food: food }
这是控制器
dbModel.food.find({ 'food.dish': req.body.data }, function(err, foundUsers) {
res.status(200).json({
"success": "1",
"message": foundUsers
});
});
它总是返回空的,我怎么能找到它呢?您还需要
var food=mongoose.model('food',foodSchema)
首先,您的代码不完整,当您导出{store:store,food:food}
时,代码只是显示store
模型。但仍然要考虑您的foodSchema
,以便在字符串数组中找到匹配的元素。您可以在操作符中尝试$,如下所示:
dbModel.food.find({ food: { $in: [req.body.data] } }, function(err, foundUsers) {
res.status(200).json({
"success": "1",
"message": foundUsers
});
});
req.body.data
值不在food
数组中,这就是为什么会得到空数组。您需要准确地检查req.body.data
中传递给查询的值。