首页 > 解决方案 > 在 ID 数组中搜索具有相同 ID 的 mongoose 上的多个文档

问题描述

我有这个小问题我正在使用带有猫鼬的 NoSQL 数据库,并且我有两个包含 ID 数组的文档

{
    "_id": {
        "$oid": "5efa6e4aebbc0401a4f613a5"
    },
    "roomID": [
        "5efbb6d0531e4a5c0c08d06b"
    ],
    "createdAt": {
        "$date": "2020-06-29T22:39:09.427Z"
    },
    "userID": {
        "$oid": "5efa6e49ebbc0401a4f613a4"
    },
    "__v": 0
} 

{
    "_id": {
        "$oid": "5efb868fc569cb50c4505a63"
    },
    "roomID": [
        "5efbb6d0531e4a5c0c08d06b",
        "5efcf95183e3c6618c10db7a"
    ],
    "createdAt": {
        "$date": "2020-06-30T18:36:43.851Z"
    },
    "userID": {
        "$oid": "5efb868fc569cb50c4505a62"
    },
    "__v": 0
}

我想搜索包含一个特定房间ID的每个文档,例如两个文档中的5efbb6d0531e4a5c0c08d06b

标签: node.jsarraysmongodbmongoose

解决方案


假设您的猫鼬模型名为Chat,然后尝试以下操作:

const rooms = await Chat.find({roomID: "5efbb6d0531e4a5c0c08d06b"})

参考: MongoDB 手册 - 查询数组中的元素


推荐阅读