У меня есть вопрос, который я не смог решить. У меня есть элемент Order с массивом Products внутри. Например:
{
_id: ObjectId("5ea0bfa85422e4537478312f"),
label: "Order 01",
status: {
_id: ObjectId("5ea0bfa85422e4537478311a"),
actual: "Created",
}
products: [
{
_id: ObjectId("5ea0bfa85422e4537478312e"),
description: "Product 1"
},
{
_id: ObjectId("5ea0bfa85422e4537478312d"),
description: "Product 2"
}
]
},
{
_id: ObjectId("5ea0bfa85422e4537478312c"),
label: "Order 02",
status: {
_id: ObjectId("5ea0bfa85422e4537478311b"),
actual: "Accepted",
}
products: [
{
_id: ObjectId("5ea0bfa85422e4537478312b"),
description: "Product 3"
},
{
_id: ObjectId("5ea0bfa85422e4537478312a"),
description: "Product 4"
}
]
}
Мои классы выглядят так:
public class Order
{
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
public string Label { get; set; }
}
public class Status
{
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
public string Actual { get; set; }
}
public class Product
{
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
public string Description { get; set; }
}
Я хочу выполнить запрос для возврата Заказ, содержащий указанный c Продукт или Статус по его ObjectId. Вот пример того, как я запрашиваю продукт 3:
//var query = "{Product.Description: 'Product 3'"}"; // it works
var query = "{Status.Id: '5ea0bfa85422e4537478311a' }"; // DIDN'T work
var query = "{Product.Id: '5ea0bfa85422e4537478312b'}"; // ALSO DIDN'T work
orders.Find(query).ToList();
Итак, как запросить эти заказы по внутреннему идентификатору элемента (Status) или по любому из элементов массива (Products).