Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何根据此文档的子文档id获取文档_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js 如何根据此文档的子文档id获取文档

Node.js 如何根据此文档的子文档id获取文档,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我有一个产品模式和一个类别模式 var ProductSchema = new Schema({ categories: [CategorySchema], createdDate: { type: Date, default: Date.now }, }); var CategorySchema = new Schema({ name: String, createdDate: { type: Date, default: Date.now }, }); 如

我有一个产品模式和一个类别模式

var ProductSchema = new Schema({
    categories: [CategorySchema],
    createdDate: { type: Date, default: Date.now },
});

var CategorySchema = new Schema({
    name: String,
    createdDate: { type: Date, default: Date.now },
});

如何获取包含特定类别的产品。如何使用mongoose.js编写此查询?

假设您有一个基于ProductSchema定义的产品模型定义,那么一般语法与标准mongoDB查询没有太大区别:

因此,这只是查询的一种简单的点表示形式,用于引用子文档元素

当然,您的模式结构似乎也基于,这意味着您应该能够访问该模式的任何其他属性:

Product.find({ "categories.name": "category name" }, function(err,product) {

  // Work with found document or err object here

});
对于在其自己的模型集合中包含CategorySchema对象的解决方案,还有一种方法提供了一种有效的(如果不是很有效的话)替代嵌入的方法,在嵌入不实用的情况下

Product.find({ "categories.name": "category name" }, function(err,product) {

  // Work with found document or err object here

});