如何使用Loopback获取“conversation_members”数组中ID完全匹配的对话?

我在Loopback中有一个集合,其结构如下:

"conversation" : [
  {
            "id": "e03e8b6b-725a-44aa-8181-56cdcebe9a45",
            "created_at": "2023-02-02T21:38:22.633Z",
            "conversation_name": "My Conversation",
            "is_group": true,
            "created_by": {
                "id": "123",
                "name": "John Doe"
            },
            "conversation_members": [
                {
                    "id": "123",
                    "name": "John Doe"
                },
                {
                    "id": "456",
                    "name": "Jane Doe"
                },
                {
                    "id": "789",
                    "name": "Jane Doe"
                }
            ]
        },
  {
            "id": "e03e8b6b-725a-44aa-8181-56cdcebe9a45",
            "created_at": "2023-02-02T21:38:22.633Z",
            "conversation_name": "My Conversation",
            "is_group": true,
            "created_by": {
                "id": "123",
                "name": "John Doe"
            },
            "conversation_members": [
                {
                    "id": "123",
                    "name": "John Doe"
                },
                {
                    "id": "456",
                    "name": "Jane Doe"
                },
                {
                    "id": "7891",
                    "name": "Jane Doe"
                }
            ]
        },
  {
            "id": "e03e8b6b-725a-44aa-8181-56cdcebe9a45",
            "created_at": "2023-02-02T21:38:22.633Z",
            "conversation_name": "My Conversation",
            "is_group": true,
            "created_by": {
                "id": "123",
                "name": "John Doe"
            },
            "conversation_members": [
                {
                    "id": "123",
                    "name": "John Doe"
                },
                {
                    "id": "456",
                    "name": "Jane Doe"
                },
                {
                    "id": "789",
                    "name": "Jane Doe1"
                }
            ]
        },
]

以及以下LoopBackremoteMethod

Conversation.remoteMethod('getConversationsByMembers', {
        accepts: { arg: 'membersId', type: 'array', required: true },
        returns: { arg: 'conversations', type: 'array' },
        http: { path: '/getConversationsByMembers', verb: 'post' },
    });

具有功能:

Conversation.getConversationsByMembers = function (membersId, cb) {
  Conversation.find(
    {
      where: {
        conversation_members: {
          [...]
        },
      },
    },
    function (err, conversations) {
      if (err) {
        cb(err);
      } else {
        cb(null, conversations);
      }
    },
  );
};

我想写where子句,这样我就可以得到“conversation_members”数组包含确切id的对话,例如[123456789]。我该怎么做?

我都试过了

 Conversation.getConversationsByMembers = function (membersId, cb) {
        Conversation.find(
            {
                where: {
                    conversation_members: {
                        all: [
                            {
                                id: {
                                    inq: membersId.map((id) => id.toString()),
                                },
                            },
                        ],
                    },
                },
            },
            function (err, conversations) {
                if (err) {
                    cb(err);
                } else {
                    cb(null, conversations);
                }
            },
        );
    };

Conversation.getConversationsByMembers = function (membersId, cb) {
        Conversation.find(
            {
                where: {
                    conversation_members: {
                        elemMatch: {
                            id: {
                                inq: membersId.map((id) => id.toString()),
                            },
                        },
                    },
                },
            },
            function (err, conversations) {
                if (err) {
                    cb(err);
                } else {
                    cb(null, conversations);
                }
            },
        );
    };

请求主体{"membersId": [123,456, 789]}

我在期待

"conversation" : [
  {
            "id": "e03e8b6b-725a-44aa-8181-56cdcebe9a45",
            "created_at": "2023-02-02T21:38:22.633Z",
            "conversation_name": "My Conversation",
            "is_group": true,
            "created_by": {
                "id": "123",
                "name": "John Doe"
            },
            "conversation_members": [
                {
                    "id": "123",
                    "name": "John Doe"
                },
                {
                    "id": "456",
                    "name": "Jane Doe"
                },
                {
                    "id": "789",
                    "name": "Jane Doe"
                }
            ]
        },
  {
            "id": "e03e8b6b-725a-44aa-8181-56cdcebe9a45",
            "created_at": "2023-02-02T21:38:22.633Z",
            "conversation_name": "My Conversation",
            "is_group": true,
            "created_by": {
                "id": "123",
                "name": "John Doe"
            },
            "conversation_members": [
                {
                    "id": "123",
                    "name": "John Doe"
                },
                {
                    "id": "456",
                    "name": "Jane Doe"
                },
                {
                    "id": "789",
                    "name": "Jane Doe1"
                }
            ]
        },
]

但答案是空数组

LoopBackJS 3-查询问题-对象数组的精确ID的更多相关文章

  1. Swift 如何访问 MongoDB

    Perfect开源项目参与Perfect开发Slack在线协同MongoDBMongoDB库函数是在mongo-c语言库的基础上封装而成,能够为Swift轻松访问MongoDB服务器提供便利。请确保安装并激活了最新版本的Swift3.0toolchain。注意每次向项目追加依存关系时,必须要打开Swift软件包管理器重新创建一个新的Xcode项目文件。在您的项目中声明MongoDB请在您的Perfect项目源程序开头声明并导入MongoDB函数库:创建一个MongoDB数据库连接创建到MongoDB服务器

  2. AngularJS下$http服务Post方法传递json参数的实例

    下面小编就为大家分享一篇AngularJS下$http服务Post方法传递json参数的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

  3. JSON 入门教程基础篇 json入门学习笔记

    刚开始接触json的时候感觉有点奇怪的命名,后来使用才发现这么简单而且用好用,扩展性很强,这里就为大家整理一下

  4. TP5(thinkPHP5)框架mongodb扩展安装及特殊操作示例

    这篇文章主要介绍了TP5(thinkPHP5)框架mongodb扩展安装及特殊操作,结合实例形式分析了MongoDB扩展的基本安装、配置、模型操作以及使用Push操作实现的数据添加、更新等方法,需要的朋友可以参考下

  5. jQuery+ajax读取json数据并按照价格排序示例

    这篇文章主要介绍了jQuery+ajax读取json数据并按照价格排序,涉及jQuery基于ajax动态获取json文件数据并进行数据遍历与排序的相关操作技巧,需要的朋友可以参考下

  6. Java接口返回json如何忽略特定属性

    这篇文章主要介绍了Java接口返回json如何忽略特定属性,通过SimplePropertyPreFilter方式(Json返回),这种写法,接口返回类型就要求是Json字符串类型,本文通过场景实例代码相结合给大家介绍的非常详细,需要的朋友可以参考下

  7. Javascript实用方法之json合并的场景分析

    这篇文章主要介绍了Javascript实用方法之json合并,jQuery 的“extend()”方法有两个原型:合并的方法,分别是浅合并和深度合并,本文通过代码给大家介绍的非常详细,需要的朋友可以参考下

  8. Node.js和MongoDB实现简单日志分析系统

    这篇文章主要介绍了Node.js和MongoDB实现简单日志分析系统,本文给出了服务器端、客户端、图表生成、Shell自动执行等功能的实现代码,需要的朋友可以参考下

  9. jQuery遍历json的方法分析

    这篇文章主要介绍了jQuery遍历json的方法,结合实例形式分析了jQuery针对json格式数据的遍历操作相关技巧,需要的朋友可以参考下

  10. Python requests.post()方法中data和json参数的使用方法

    这篇文章主要介绍了Python requests.post()方法中data和json参数的使用方法,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下

随机推荐

  1. 如何扩展ATmega324PB微控制器的以下宏寄存器?

    我目前正在学习嵌入式,我有以下练习:展开以下宏寄存器:如果有人解决了这个问题,我将不胜感激,以便将来参考

  2. Python将ONNX运行时设置为返回张量而不是numpy数组

    在python中,我正在加载预定义的模型:然后我加载一些数据并运行它:到目前为止,它仍在正常工作,但我希望它默认返回Tensor列表,而不是numpy数组。我对ONNX和PyTorch都是新手,我觉得这是我在这里缺少的基本内容。这将使转换中的一些开销相同。

  3. 在macOS上的终端中使用Shell查找文件中的单词

    我有一个文本文件,其中有一行:我需要找到ID并将其提取到变量中。我想出了一个RexEx模式:但它似乎对我尝试过的任何东西都不起作用:grep、sed——不管怎样。我的一个尝试是:我为这样一个看似愚蠢的问题感到抱歉,但我在互联网上找不到任何东西:我在SO和SE上读了几十个类似的问题,并在谷歌上搜索了几个教程,但仍然无法找到答案。欢迎提供任何指导!

  4. react-chartjs-2甜甜圈图中只有标题未更新

    我正在使用react-chartjs-2在我的网站中实现甜甜圈图。下面是我用来呈现图表的代码。我将甜甜圈图的详细信息从父组件传递到子组件,所有道具都正确传递。当我在beforeDraw函数外部记录props.title时,它会记录正确的值,但当我在beforeDraw函数内部记录props.title时,它将记录标题的前一个值,从而呈现标题的前值。我在这里做错了什么?

  5. 如何在tkinter中使用Python生成器函数?

    生成器函数承诺使某些代码更易于编写。但我并不总是知道如何使用它们。假设我有一个斐波那契生成器函数fib(),我想要一个显示第一个结果的tkinter应用程序。当我点击“下一步”按钮时,它会显示第二个数字,依此类推。我如何构建应用程序来实现这一点?我可能需要在线程中运行生成器。但如何将其连接回GUI?

  6. 如何为每次提交将存储库历史记录拆分为一行?

    我正在尝试获取存储库的历史记录,但结果仅以单行文本的形式返回给我。

  7. 尝试在颤振项目上初始化Firebase时出错

    当尝试在我的颤振项目上初始化firebase时,我收到了这个错误有人知道我能做什么吗?应用程序分级Gradle插件Gradle项目颤振相关性我已经将firebase设置为Google文档已经在另一个模拟器上尝试过,已经尝试过创建一个全新的模拟器,已经在不同的设备上尝试过了,已经尝试了特定版本的firebase,已经尝试添加但没有任何效果,已经在youtube上看到了关于它的每一个视频,该应用程序在android和iOS两个平台上都抛出了这个错误

  8. 在unix中基于当前日期添加新列

    我试图在unix中基于时间戳列在最后一个单元格中添加一个状态列。我不确定如何继续。

  9. 麦克斯·蒙特利。我一直得到UncaughtReferenceError:当我在终端中写入node-v时,节点未定义

    如果这是您应该知道的,请确认:我已将所有shell更改为默认为zsh。当我在终端中写入node-v时,我一直收到“UncaughtReferenceError:nodeisnotdefined”。但它显示节点已安装。我是个新手,在这方面经验不足。

  10. 如何在前端单击按钮时调用后端中的函数?

    那么如何在后端添加一个新的端点,点击按钮调用这个函数。

返回
顶部