首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据保存在Js数组中的Ids来获取散布在数组字段中的对象

如何根据保存在Js数组中的Ids来获取散布在数组字段中的对象
EN

Stack Overflow用户
提问于 2020-03-07 21:47:55
回答 1查看 25关注 0票数 0

在我的数据库中,有一个名为SetVoca的集合,其结构如下:

代码语言:javascript
复制
{
    "_id" : ObjectId("5e63518c3e5d0d08980e2203"),
    "lessonId" : "5e63518c3e5d0d08980e2201",
    "vocaList" : [ 
        {
            "_id" : ObjectId("5e6351e43e5d0d08980e2207"),
            "word" : "a",
            "type" : "a",
            "meaning" : "a",
            "sente" : "a",
            "semean" : "a",
            "sug" : "a"
        }, 
        {
            "_id" : ObjectId("5e6351eb3e5d0d08980e2208"),
            "word" : "b",
            "type" : "b",
            "meaning" : "b",
            "sente" : "b",
            "semean" : "b",
            "sug" : "b"
        }
    ],
    "__v" : 0
}

/* 2 */
{
    "_id" : ObjectId("5e6351be3e5d0d08980e2206"),
    "lessonId" : "5e6351be3e5d0d08980e2204",
    "vocaList" : [ 
        {
            "_id" : ObjectId("5e6351f63e5d0d08980e2209"),
            "word" : "c",
            "type" : "c",
            "meaning" : "c",
            "sente" : "c",
            "semean" : "c",
            "sug" : "c"
        }
    ],
    "__v" : 0
}

我现在将vocaList字段中的ObjectId值分散到一个数组中,如下所示:

代码语言:javascript
复制
const vocaIds = ['5e6351e43e5d0d08980e2207', '5e6351eb3e5d0d08980e2208', '5e6351f63e5d0d08980e2209']

现在,我希望根据保存在vocaIds数组中的Ids检索分散在vocaList字段中的对象。我试着这样编写它:

代码语言:javascript
复制
app.get('/saved-find', (req, res) => {
    SetVoca.find({ 'vocaList': { '_id': { $in: vocaIds } } }, (err, result) => {
        console.log(result);
    });
});

不幸的是,它不工作,所以我应该修复它来运行它。非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-07 22:24:37

您需要将ids封装在ObjectId中,如下所示

代码语言:javascript
复制
const vocaIds = [mongoose.Types.ObjectId('5e6351e43e5d0d08980e2207'), mongoose.Types.ObjectId('5e6351eb3e5d0d08980e2208'), mongoose.Types.ObjectId('5e6351f63e5d0d08980e2209')]

在查询中,如下所示

代码语言:javascript
复制
SetVoca.find({ 'vocaList._id': { $in: vocaIds } }, (err, result) => {
        console.log(result);
    });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60578194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档