gpt4 book ai didi

mongodb - 在 MongoDB 的 ObjectId 数组中查找元素

转载 作者:可可西里 更新时间:2023-11-01 09:56:41 26 4
gpt4 key购买 nike

我有一个使用 Morphia 映射的 ObjectId 列表。在 Java 中,映射如下所示:

public class Log {
@Indexed
public List<ObjectId> companyIds;
....
}

然而,在 Mongo shell 中,当我使用 $elemMatch 进行搜索时,它会提示无效类型。

> db.Log.find({ "companyIds" : { "$elemMatch" : ObjectId("5059e90d0364d02be740417a")}})
error: {
"$err" : "invalid parameter: expected an object ($elemMatch)",
"code" : 10065
}

要将 $elemMatch 与 ObjectId 一起使用,我还需要做些什么吗?

谢谢

最佳答案

您不需要使用 $elemMatch 来执行此操作。您可以只运行查询

{ "companyIds" : ObjectId("...") }

这将找到其 companyIds 字段包含给定 objectId 的所有对象。

根据docs , $elemMatch 仅在您尝试匹配数组元素上的多个字段时才需要。它说“需要一个对象”的原因是 $elemMatch 将一个完整的 mongo 查询(例如,您可以传递给 find 的东西)作为参数。

关于mongodb - 在 MongoDB 的 ObjectId 数组中查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12505121/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com