gpt4 book ai didi

javascript - Mongoose 通过子文档的_id查找文档

转载 作者:可可西里 更新时间:2023-11-01 10:02:45 25 4
gpt4 key购买 nike

假设我有以下结构:

var Partner = require('../partner/partner.model');

var ContractSchema = new Schema({
// blahblah
partners: [Partner.schema]
});

所以这里每个合约都有一个合作伙伴数组,每个合作伙伴都有一个 _id 属性。

我想搜索一份契约(Contract),其中的合作伙伴具有特定的 _id。我试过了,但没用:

  var ObjectId = require('mongoose').Types.ObjectId;    
Contract.find({
partners: {
$elemMatch: {
_id: {
$eq: new ObjectId(req.query.partnerId)
}
}
}
}, function (err, serviceContracts) {
if (err) {
return handleError(res, err);
} else {
return res.status(200).json(serviceContracts);
}
});

编辑:这是我在数据库中的示例:

{
"_id" : ObjectId("57e370e72beac9fc21c99ca3"),
"updatedAt" : ISODate("2016-09-22T05:49:27.000Z"),
"createdAt" : ISODate("2016-09-22T05:49:27.000Z"),
"currency" : "USD",
"partners" : [
{
"updatedAt" : ISODate("2016-09-22T05:49:27.000Z"),
"createdAt" : ISODate("2016-09-22T05:49:27.000Z"),
"name" : "Apple Inc.",
"_id" : ObjectId("57e370e72beac9fc21c99caa")
}
],
"__v" : 0
}

最佳答案

正如@robertklep 所说,这是可行的:

Contract.find({ "partners._id": req.query.partnerId})
.then(function(contracts) {
return res.status(200).json(contracts);
})
.catch(function(err) {
return handleError(res, err);
});

关于javascript - Mongoose 通过子文档的_id查找文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40821371/

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