sreeenivasa reddy Ответов: 1

Как получить данные из нескольких коллекций с помощью C# mongodb


Я пытался получить данные из одной коллекции...но я хочу получить данные снизу из нескольких коллекций...
{ "_id" : 1, "item" : "abc", "price" : 12, "quantity" : 2 }
{ "_id" : 2, "item" : "jkl", "price" : 20, "quantity" : 1 }
{ "_id" : 3  }


{ "_id" : 1, "sku" : "abc", description: "product 1", "instock" : 120 }
{ "_id" : 2, "sku" : "def", description: "product 2", "instock" : 80 }
{ "_id" : 3, "sku" : "ijk", description: "product 3", "instock" : 60 }
{ "_id" : 4, "sku" : "jkl", description: "product 4", "instock" : 70 }


Что я уже пробовал:

<pre>
        public IEnumerable<Product> GetProducts()
        {
            return _db.GetCollection<Product>("Products").FindAll();
        }


КЛАСС МОДЕЛЕЙ:
public class Product
   {
       public ObjectId Id { get; set; }
       [BsonElement("ProductId")]
       public int ProductId { get; set; }
       [BsonElement("ProductName")]
       public string ProductName { get; set; }
       [BsonElement("Price")]
       public int Price { get; set; }
       [BsonElement("Category")]
       public string Category { get; set; }
   }

1 Ответов

Рейтинг:
1

JayantaChatterjee

Привет @sreeenivasa
MongoDB не поддерживает объединение, поэтому вы получаете только одну коллекцию за раз.
если вы хотите объединить несколько коллекций, вам нужно объединить их с помощью синтаксиса запроса LINQ, например

var query = _db.GetCollection<Product>("Products").AsQueryable().Join(_db.GetCollection<Item>("Item"),product => product._id,item =>item._id,(product, item) => product; 


надеюсь, это поможет..


sreeenivasa reddy

Привет джаянтачаттерджи спасибо за ответ

Я пробовал вышеописанный запрос, но он не работает....метод join не существует для
объект коллекций...

JayantaChatterjee

пожалуйста, смотрите, я обновляю свое решение.

sreeenivasa reddy

товар =&ГТ;пункт.Поля _id,(продукт, товар) => по продукту; по пункту доходов не получает каких-либо свойств.. не могу присоединиться на основе условия

JayantaChatterjee

Извиняюсь,
пожалуйста, измените Queryable() на AsQueryable()..
смотрите мое обновленное решение.

sreeenivasa reddy

Я так и сделал, сэр ... но не пришел

JayantaChatterjee

прямо сейчас у меня нет установки mongoDB,поэтому я не могу ее протестировать. но именно так вы можете объединить несколько коллекций mongoDB.
вы получили какую-нибудь ошибку?