我希望找到客户名字的订单,例如约翰'。想只使用mongo查询。
我有一个订单集合,如:
NSURL *imageURL = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@", self.baseURL, imageURLString]];
[self setImageWithURLRequest:[NSURLRequest requestWithURL:imageURL]
placeholderImage:placeholder
success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
if (image)
{
weakSelf.image = image;
}
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {
}];
我的疑问:
{
"_id" : ObjectId("5669891a49b065ae2d7a5ea7"),
"customer" : ObjectId("563a399a11c9b15001565463"),
"quantity" : "6"
}
我收到了所有订单,但只填充匹配的条件客户。只需要匹配的条件订单。
有没有办法只找到使用mongo查询?
答案 0 :(得分:1)
我不相信这是可能的。您可以使用Aggregation Operation到达那里,但您仍然可以获取所有文档,然后对其进行排序。您最好的选择可能只是两步查询操作。
Customer.find({firstName: 'john'})
.select('_id')
.exec(function(err, customerDocs) {
if (err) {...}
var customerIds = [];
for (var i=0; i<customerDocs.length; i++) {
customerIds.push(customerDocs[i]._id);
}
Order.find({customer: {$in: customerIds}})
.exec(function(err, orderDocs) {...});
});