Arrays 在数组字段中查找匹配项

Arrays 在数组字段中查找匹配项,arrays,node.js,mongodb,mongoose,Arrays,Node.js,Mongodb,Mongoose,在“我的图像共享”应用程序中,您可以创建相册并向其中添加图像。从站点删除图像时,还应将其从存储图像引用(名称、id)的相册中删除 我需要帮助的是找到存储了要删除的图像(参考)的相册 下面的路线是我迄今为止尝试的路线,但我在查询中遇到了一个错误。我检查了Mongodb文档,语法如下所示: db.collection.find( { field : { $in : array } } ); 在我的路线中,场和阵列交换了位置,这似乎不起作用 我真的很感谢你的帮助。提前谢谢 我的模型如下所示: var

在“我的图像共享”应用程序中,您可以创建相册并向其中添加图像。从站点删除图像时,还应将其从存储图像引用(名称、id)的相册中删除

我需要帮助的是找到存储了要删除的图像(参考)的相册

下面的路线是我迄今为止尝试的路线,但我在查询中遇到了一个错误。我检查了Mongodb文档,语法如下所示:

db.collection.find( { field : { $in : array } } );
在我的路线中,场和阵列交换了位置,这似乎不起作用

我真的很感谢你的帮助。提前谢谢

我的模型如下所示:

var AlbumSchema = new Schema({
      title             : String,
      imageName         : [String], <-- array the contains of images names
      imageId           : [String] <-- array the contains of images id's
});

modelObject.AlbumSchema = AlbumSchema;
modelObject.Album = mongoose.model('Album', AlbumSchema);

var ImageSchema = new Schema({
    name : String,
    size : Number,
    type : String
});

modelObject.ImgSchema = ImgSchema;
modelObject.Image = mongoose.model('Image', ImgSchema);
app.get('/blog/delete/:id', function(req, res){

    model.ImagePost.findById(req.params.id, function (err, blog){

        var theImage = blog.name;

        if (err) {
            console.log(err);
            // do something
        }

        var query = albumModel.Album.find( { imageName: { $in : theImage } } );

        query.exec(function (err, albums) {

            if (!albums) {
                console.log(err);
                // do something

                blog.remove(function(err) {
                    console.log(err);
                    // do something
                });

                res.redirect('/blogs');
            }

            else {
                // code for removing the image(s) in the albums

                res.redirect('/blogs');
            }
        });
    });
});
db.collection.find({field:{$in:array}})
不是您想要的语法。这表示“找到文档,其中该字段包含我将在数组中提供给您的列表值之一。”

您希望在运行时使用相等

db.collection.find({imageName:theImage})

这表示查找imageName为图像的文档,这样将返回在imageName数组中包含此图像的相册(如果一张图片可以位于多个相册中,则返回相册)。

回答非常好(+1)。这是我找到的另一个链接