Express 如何从mongoose模式中的对象数组中选择特定对象? var mongoose=require(“mongoose”); //模式设置 var productSchema=newmongoose.Schema({ 类型:{ 类型:字符串, 必需:[true,'产品必须具有类型'] }, 希德:字符串, 图像:字符串, 产品:[{ 名称:String, 图像:字符串, 价格:号码 }] }); module.exports=mongoose.model(“产品”,productSchema);

Express 如何从mongoose模式中的对象数组中选择特定对象? var mongoose=require(“mongoose”); //模式设置 var productSchema=newmongoose.Schema({ 类型:{ 类型:字符串, 必需:[true,'产品必须具有类型'] }, 希德:字符串, 图像:字符串, 产品:[{ 名称:String, 图像:字符串, 价格:号码 }] }); module.exports=mongoose.model(“产品”,productSchema);,express,mongoose,Express,Mongoose,我的猫鼬模式是这样的。现在我只想使用mongoose查询从名为“products”的对象数组中访问一个特定对象。 谁能告诉我怎么做??我会非常感激的。你需要这样的东西: db.collection.find({ “产品名称”:“名称” }, { “产品$”:1 }) 通过此查询,您将找到name字段为“name”的产品对象。之后,使用位置运算符$仅返回匹配 Mongo游乐场示例 编辑:请注意,如果存在多个数组对象匹配的文档,则此查询将返回多个子文档。要筛选唯一元素,必须指示另一个唯一字段,如下

我的猫鼬模式是这样的。现在我只想使用mongoose查询从名为“products”的对象数组中访问一个特定对象。
谁能告诉我怎么做??我会非常感激的。

你需要这样的东西:

db.collection.find({
“产品名称”:“名称”
},
{
“产品$”:1
})
通过此查询,您将找到
name
字段为“name”的产品对象。之后,使用位置运算符
$
仅返回匹配

Mongo游乐场示例

编辑:请注意,如果存在多个数组对象匹配的文档,则此查询将返回多个子文档。要筛选唯一元素,必须指示另一个唯一字段,如下所示:

db.collection.find({
“sId”:“1”,
“产品名称”:“名称”
},
{
“产品$”:1
})
编辑以解释如何使用
查找
使用
猫鼬

您可以使用
find
findOne
,但查询本身是相同的

这很简单。您需要使用问题中描述的模型,因此代码如下:

var objectFound=wait YourModel.findOne({
“产品名称”:“名称”
},
{
“产品$”:1
})

其中,
YourModel
是定义的模式。

非常感谢您的回答。但是您告诉我的内容只能在控制台中使用。mongoose对它的查询是什么..直接添加代码???@ShagunSharma我已经更新了答案。但是,查询本身基本上与进入
mongoose
相同。您必须从模型中调用
findOne()
函数。