[英]Mongoose find Object where query contains an array of objects based on the ObjectId
我想用异步 function 中的对象数组查询 model。
我的合同架构:
const ContractSchema = new mongoose.Schema({
Nr: {
type: String,
trim: true,
sparse: true,
},
});
我的站架构
const StationSchema = new mongoose.Schema({
ContractId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Contract',
required: true,
},
Name: {
type: String,
trim: true,
},
});
我的第一个查询有效,结果我得到了两个对象:
const contract = await Contract.find({ Nr: 'pi' });
我的第二个查询,结果我应该得到 2 个对象。 但是我得到了很多 ContractId 为 NULL 的对象。
const station = await Station.find({ ContractId: { $in: contract._id } });
为了进行测试,我更改了第二个查询,得到了两个结果:
const station = await Station.find({ ContractId: { $in: ['...9b', '...b4'] } });
对于我的第二个查询,我想获得没有任何 NULL 值的两个结果,我该怎么做? 这个查询应该是什么样的?
如果您想检索_id
列表中存在的所有ContractId
值,请像这样更改您的查询:
const ids = [ contract._id, otherContract._id ]
const station = await Station.find({ ContractId: { $in: ids } });
如果您想检索具有特定_id
值的所有ContractId
,请像这样更改您的查询:
const station = await Station.find({ ContractId: contract._id });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.