猫鼬查询以检查所搜索元素的数组中的特定值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了猫鼬查询以检查所搜索元素的数组中的特定值相关的知识,希望对你有一定的参考价值。

我的架构如下:

var EntitySchema = new Schema(
  name : type: String, default: null,
  organizations : [
    id: 
      type: mongoose.Schema.Types.ObjectId,
      ref: 'Organization'
    ]
);

我有一个组织ID,如何查询Entity.find()并在其组织数组中找到具有该ID的Entity?

我在mongo shell中使用了它

db.entity.find("organizations.id":  $in: [ObjectId("ididididididid")]).pretty()

并且它有效,但是在express方法中不起作用,我做错了吗? $ in是否同时起作用?我有一种感觉,它不是我在此查询中应该使用的。

答案

根据mongo文档,您可以按以下方式查询

db.entity.find( "organizations" :  $elemMatch:  "id" : ObjectId("ididididididid")  ).pretty();

参考:https://docs.mongodb.com/manual/tutorial/query-array-of-documents/

以上是关于猫鼬查询以检查所搜索元素的数组中的特定值的主要内容,如果未能解决你的问题,请参考以下文章

数组中的猫鼬查询,用于检索从索引 0 到 n 开始的元素,其中 n 是从最后一个元素开始的位置

能够查询数组中的特定索引吗?猫鼬

如何使用猫鼬更新子文档数组中的特定元素? [复制]

mongodb:查询以检查数组中的项目是不是包含特定字符串[重复]

在express中的每个数组元素中进行猫鼬查询时如何处理异步?

猫鼬删除文档中的数组元素