在find方法(TypeORM)中传递数组对象

问题描述 投票:0回答:1

我正在通过mongoose将API迁移到TypeORM。我有一个数组(conversationIds)包含要从数据库中搜索的id列表,它应该返回我可用的id。以下是我试过的查询。

 const conversationMessagesWithDuplicates = await consversationRepository.createQueryBuilder("conversation").where("conversation.channel_message_ID = :channel_message_ID",{channel_message_ID : conversationIds}).getMany();

还有这一个

const conversationMessagesWithDuplicates = await consversationRepository.find({channel_message_ID: conversationIds});

但我得到以下问题:

(node:11548) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): QueryFailedError: Error: Incorrect syntax near ','.

我也试过使用实体Manger,但没有成功

const conversationMessagesWithDuplicates = await entityManager.query(`SELECT channel_message_ID FROM Conversation where channel_message_ID IN (conversationIds)`);

以下是MoongoseAPI工作正常:

Conversation.find( { channel_message_ID: { $in: conversationMessageIdArray } } ).exec(function(err, conversationMessagesDuplicatesArray) {}
typeorm
1个回答
0
投票

这是解决方案

const conversationMessagesWithDuplicates = await consversationRepository.createQueryBuilder("conversation").where("conversation.channel_message_ID IN (:conversationIds)", { conversationIds: conversationIds }).getMany();
© www.soinside.com 2019 - 2024. All rights reserved.