我的架构如下:
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()
它起作用了,但是在express方法中不起作用,我做错了吗? $ in是否同时起作用?我觉得它不是我在此查询中应该使用的。
答案 0 :(得分:0)
根据mongo文档,您可以按以下方式查询
db.entity.find({ "organizations" : { $elemMatch: { "id" : ObjectId("ididididididid") } }}).pretty();
参考: https://docs.mongodb.com/manual/tutorial/query-array-of-documents/