当前位置: 首页 > 知识库问答 >
问题:

在数组列中查找NestJS TypeORM mongodb无效

吴凯泽
2023-03-14

所以我正在用NestJs和mongodb进行一个项目。早些时候,我们使用express和mongoose,为了在数组列中查找结果,我们使用了如下方法:

        Event.find({
                'teachers': _id
            })

现在,当我们使用TypeORM迁移到新的Nest后端时,我们使用的是:

        this.eventRepository.find({
                where: {
                    'teachers': _id
                }
            });

但这不起作用。奇怪的是,除此之外,我们在mongoose中使用的所有查询都能正常工作。我试着用NestJS处理mongoose,这确实有效,所以函数参数或任何东西都没有问题。

现在,我将发布事件实体的外观,以便您了解:

@Entity('events')
export class Event{
    
    @ObjectIdColumn()
    public _id: ObjectID;

    @Column()
    public title :string;

    @Column()
    public teachers: string[];
//the rest with getters and setters.

如果有人能告诉我我是否做错了什么,或者有其他方法可以做,或者我应该报告TypeORM的错误,那就太好了。

共有1个答案

齐高寒
2023-03-14

我假设您有一个名为:Teacher的实体类,该类具有\u id字段:

 @ObjectIdColumn()
    public _id: ObjectID;

事件实体类中,您应该将教师从类型string[]更改为ObjectID[],如下所示:

 @Column()
    public teachers: ObjectID[];

最后,您的查询应如下所示:

 this.eventRepository.find({
    where: {
        'teachers._id': { $eq: _id }
    }
 });
 类似资料:
  • 对于名为cb_节点的数组,我有不同数量的列。要对这些数据进行后处理,需要准确知道每行中的列数。 数组如下所示。 等等...数组中的每一行都有不同数量的列数。只是个例子,数组中的键是不同的。 TCL中的命令集只有和,它没有给出每行的行号和列号。 在TCL,我们如何做到这一点?

  • 对于这个任务,我认为我做对了,但是当我在网上提交时,即使我用Eclipse检查过,它也没有把它列为正确的。 提示: 写一个方法isPalinene,它接受一个Strings数组作为它的参数,如果该数组是回文(如果它向前读取和向后读取相同),则返回true,如果不是,则返回 /false。例如,数组{"alpha"、"beta"、"gamma"、"delta"、"gamma"、"beta"、"alp

  • 到目前为止,这就是我的答案,但从逻辑上讲,我的答案对于findNextCity方法似乎是错误的。此外,我甚至不知道如何处理问题的第二部分(以下)。 我应该遍历cityQueue中的每个元素,使用下一种方法计算的欧几里德距离(distbetweencies),确定哪个元素最接近当前城市(从第一个参数)。我必须忽略已经标记在堆栈中或堆栈中的城市以及当前城市本身(否则,城市将始终是离自身最近的城市!)。

  • 问题内容: 我有一个清单“ a” 我需要找到一个特定数字的所有元组。说1 我怎么做? 问题答案: 如果只希望第一个数字匹配,则可以这样操作: 如果您仅搜索其中包含1的元组:

  • 问题内容: 我们需要打印数组中存在的所有leaders。如果元素大于元素的右侧,则元素是领导者。 例如: 问题答案: 使用两个循环。外循环迭代数组元素,内循环检查数组的正确元素。如果当前元素大于右侧元素,则它是leaders。 java代码: 时间复杂度:o(N^2) 解决方案2: 让我们找到更优化的解决方案 我们将使用最右边的元素始终是leaders的属性。 我们将从最右边的元素开始并跟踪最大值

  • 这个问题来自一个很棒的YouTube频道,给出了可以在采访中提出的问题。 它基本上与寻找数组中的平衡点有关。这里有一个例子来最好地解释它;{1,2,9,4,-1}.因为sum(1 ^ 2)= sum(4(-1))使9成为平衡点。在没有检查答案的情况下,我决定先实现这个算法,想问问是否有更有效的方法; < li >对数组O(n)中的所有元素求和 得到总数的一半O(1) < li >从左侧开始扫描数组