我正在使用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#驱动程序示例来完成此操作。