如何从猫鼬中的文档查询中仅获取子文档
how to get only subdocument from document query in mongoose
我试图在 node.js 中通过 mongoose 从整个文档中获取子文档。
我的数据库架构如下:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
// var Items = require('./items.js');
var Items = new Schema({
no_of_times_ordered:Number,
item_name:String,
item_tag:String,
item_category:String,
item_stock:Number,
item_price:Number,
item_img:String,
item_illustrations:[String],
item_liked:Boolean,
no_of_likes:Number
},{ versionKey: false });
var FoodTruckSchema = new Schema({
foodtruck_name:String,
foodtruck_location:String,
foodtruck_rating:Number,
foodtruck_tag:String,
foodtruck_timing:String,
foodtruck_cusine:String,
foodtruck_img:String,
foodtruck_logo:String,
item_list: [Items]
},{ versionKey: false });
module.exports = mongoose.model('foodtruck',FoodTruckSchema);
查询如下:
var popularitems = function(req,res) {
foodtr.find(function(err,items){
if (err) res.send(err);
res.json({
status : '200',
message:'popular items list',
data: items
});
});
所以我已经查询了在哪里检索带有食品卡车的物品,但我怎么能只有物品作为响应?
您可以在查找查询中使用 select
或 projection
以仅获取 items
.
试试这个:
foodtr.find({},{'item_list':1},function(err,items){
if (err) res.send(err);
res.json({
status : '200',
message:'popular items list',
data: items
});
});
{}
类似于查询条件,在这种情况下它将检索所有文档。
{'item_list':1}
是告诉 mongo 只检索 item_list
数组(_id 与其他任何东西一起默认)。
希望这就是你想要的。
我试图在 node.js 中通过 mongoose 从整个文档中获取子文档。 我的数据库架构如下:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
// var Items = require('./items.js');
var Items = new Schema({
no_of_times_ordered:Number,
item_name:String,
item_tag:String,
item_category:String,
item_stock:Number,
item_price:Number,
item_img:String,
item_illustrations:[String],
item_liked:Boolean,
no_of_likes:Number
},{ versionKey: false });
var FoodTruckSchema = new Schema({
foodtruck_name:String,
foodtruck_location:String,
foodtruck_rating:Number,
foodtruck_tag:String,
foodtruck_timing:String,
foodtruck_cusine:String,
foodtruck_img:String,
foodtruck_logo:String,
item_list: [Items]
},{ versionKey: false });
module.exports = mongoose.model('foodtruck',FoodTruckSchema);
查询如下:
var popularitems = function(req,res) {
foodtr.find(function(err,items){
if (err) res.send(err);
res.json({
status : '200',
message:'popular items list',
data: items
});
});
所以我已经查询了在哪里检索带有食品卡车的物品,但我怎么能只有物品作为响应?
您可以在查找查询中使用 select
或 projection
以仅获取 items
.
试试这个:
foodtr.find({},{'item_list':1},function(err,items){
if (err) res.send(err);
res.json({
status : '200',
message:'popular items list',
data: items
});
});
{}
类似于查询条件,在这种情况下它将检索所有文档。
{'item_list':1}
是告诉 mongo 只检索 item_list
数组(_id 与其他任何东西一起默认)。
希望这就是你想要的。