如何在MongoDB中一次查询非关系多个集合?

时间:2020-10-16 11:56:23

标签: c# arrays mongodb mongodb-query

我正在使用C#.net core 3.1,MongoDB 4.4.1(当前为最新版本)

我有以下庞大的独立的非关系收藏集:

const path = require('path');
module.exports = {
    mode: "development",
    entry: "./Electron/app.ts",
    target: "electron-main",
    module: "es6",
    watch: true,
    stats: 'minimal',
    output: {
        path: path.resolve(__dirname, "./Dist/Electron/"),
        filename: "app.js",
    },
    module: {
        rules: [
            {
                test: /\.tsx?$/,
                use: 'ts-loader',
                include: /Electron/,
            },
        ]
    },

    resolve: {
        extensions: ['.ts', '.tsx', '.js']
    }
}

我需要一次查询多个非关系集合以获取成分。
这样保存成分;

Meats:
{ _id: 1, title: 'Beef', cooktemp: 70, origin: 'Germany', season: 'Winter', ...  }
{ _id: 2, title: 'Chicken', cooktemp: 60, origin: 'Germany', season: 'N/A', ... }
{ _id: 3, title: 'Lamb', cooktemp: 80, origin: 'Holland', season: 'Summer', ... }
{ _id: 4, title: 'Pork', cooktemp: 50, origin: 'Usa', season: 'N/A', ... }
...

Vegetables:
{ _id: 1, title: 'Spinach', vitamins: 'D', ... }
{ _id: 2, title: 'Carrots', vitamins: 'C', ... }
{ _id: 3, title: 'Broccoli', vitamins: 'K', ... }

Oils:
{ _id: 1, title: 'Butter', temp: '40', ... }
{ _id: 2, title: 'Palm Oil', temp: '30', ... }
...

因此,“成分”集合就​​像存储在多个集合中的一篮子对象。

我不想这样直接保存配料;

Ingredients:
{ _id: 1, title: 'Delicious Beef with Honey and Light Oil', ingres: 
[ {
        "collection" : "Meats",
        "ids" : [1]
    },
    {
        "collection" : "Spinach",
        "ids" : [1,3]
    },
    {
        "collection" : "Spinach",
        "ids" : [1,3]
    },
    ...
] },
...

作为一个例子,“肉”对象的属性值可以在一段时间后更改...

此外,我也不想一一获得它们(查询一个集合和多个ID,然后再查询另一个具有多个ID的集合,依此类推...),因为一顿饭可以包含20种不同的集合/成分。这意味着向mongoDB发送20条请求。

那么,如何使用集合名称和ID查询多个集合?
我没有找到mongo示例或C#驱动程序示例来完成此操作。

0 个答案:

没有答案