0
Пусть говорят, я иметь следующую структуру:мангуст найти документ по поддокументе в _id
var Partner = require('../partner/partner.model');
var ContractSchema = new Schema({
// blahblah
partners: [Partner.schema]
});
Так вот каждый контракт имеет множество партнеров, и каждый партнер имеет _id
свойство.
Я хочу найти контракт, у которого есть партнер с конкретным _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);
}
});
EDIT: Вот пример того, что я имею в БД:
{
"_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
}
прежде всего заменить '' 'Contract.find ({ partner: {' '' с '' 'Contract.find ({ партнеров: {' '' Тогда сообщите –
Заменено, все еще не работает. –
Можете ли вы, пожалуйста, дать мне свою таблицу записей с одним столом. –