node.js - Mongoose 查询检查搜索元素数组中的特定值

标签 node.js database mongodb express mongoose

我的架构如下:

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

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

我在 mongo shell 中使用了这个

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

它有效,但在快速方法中不起作用,我做错了什么吗? $in 可以双向使用吗?我有一种感觉,这不是我应该在这个查询中使用的。

最佳答案

根据mongo文档,可以如下查询

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

引用: https://docs.mongodb.com/manual/tutorial/query-array-of-documents/

关于node.js - Mongoose 查询检查搜索元素数组中的特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58933971/

相关文章:

node.js - 如何使用 Jade 标记 Bootstrap 字形?

mysql - 我怎样才能处理这个一对多的关系,这个约束在一个 note ON 字段上?

c# - 无法通过 OleDbAdapter 更新 Access 数据库

java - 如何在 java 中使用列表从 aerospike 获取记录?

python - 使用 PyMongo 使用自己的值更新所有 MongoDB 字段

java - 使用java修剪json对象中的冗余属性

node.js - 内存中的 V8 BigInt 大小?

file - node.js 文件内存泄漏?

javascript - 如何在 Sails.js 中进行原子 Controller 操作

javascript - 如何更新数组、对象内、数组内的数组?