Mongodb C#客户端数据关联数据,使用Linq语法进行关联
在Mongodb C# drivers 文档
官方地址:https://docs.mongodb.com/ecosystem/drivers/csharp/
基础的使用请参考《c# Mongodb》
原本在Nodejs中是可以直接某个字段参考自另一个表的,数据类型是ObjectID,只需要加入ref:'某个实体'即可实现
'use strict';
import mongoose from './db'; let Schema = mongoose.Schema; let jobOrderSchema = new Schema({
JobOrderCode: {
type: String,
unique: true,
trim: true,
required: [true, 'Kindly enter the jobOrder code']
},
JobOrderName: {
type: String,
trim: true,
required: [true, 'Kindly enter the jobOrder name']
},
JobOrderDesc: {
type: String,
trim: true,
required: [true, 'Kindly enter the jobOrder description']
},
OrderCount: {
type: Number,
required: [true, 'Kindly enter the order count']
},
CustomerID: {
type: Schema.Types.ObjectId,
ref: 'Customer'
},
MaterialID: {
type: Schema.Types.ObjectId,
ref: 'Material'
},
MouldID: {
type: Schema.Types.ObjectId,
ref: 'Mould'
},
MachineID:{
type: Schema.Types.ObjectId,
ref: 'Machine'
},
MachineAcceptLog:[{
type: String,
trim: true
}],
Remark: {
type: String,
trim: true
},
CreateAt: {
type: Date,
default: Date.now
},
CreateBy: {
type: String
},
LastUpdateAt: {
type: Date,
default: Date.now
},
LastUpdateBy: {
type: String
},
}); jobOrderSchema.set('collection', 'JobOrder');
const jobOrderModel = mongoose.model('JobOrder', jobOrderSchema); export default jobOrderModel;
但在C#中,暂时还没有找到ref类型的处理方式,
找到部分资料,但还没有悟透方法
参考地址:https://oz-code.com/blog/how-to-mongodb-in-c-part-1/
使用Linq语法参考https://jira.mongodb.org/browse/CSHARP-1627
在没有找到相关的方法时,先使用以下代码代替,即使用Linq的语法进行处理
/// <summary>
/// 获取所有未开始的订单
/// </summary>
/// <returns></returns>
public static object GetJobOrderByNoStart()
{
try
{
var customerCollection = Common.MongodbHandler.GetInstance().mc_MongoDatabase.GetCollection<DataModel.Customer>(Common.ConfigFileHandler.GetAppConfig("CustomerCollectionName"));
var materialCollection = Common.MongodbHandler.GetInstance().mc_MongoDatabase.GetCollection<DataModel.Material>(Common.ConfigFileHandler.GetAppConfig("MaterialCollectionName"));
var mouldCollection = Common.MongodbHandler.GetInstance().mc_MongoDatabase.GetCollection<DataModel.Mould>(Common.ConfigFileHandler.GetAppConfig("MouldCollectionName"));
var jobOrderCollection = Common.MongodbHandler.GetInstance().mc_MongoDatabase.GetCollection<DataModel.JobOrder>(Common.ConfigFileHandler.GetAppConfig("JobOrderCollectionName")); var getdocument = (from jo in jobOrderCollection.AsQueryable()
join cu in customerCollection.AsQueryable() on jo.CustomerID equals cu._id
join ma in materialCollection.AsQueryable() on jo.MaterialID equals ma._id
join mo in mouldCollection.AsQueryable() on jo.MouldID equals mo._id
where jo.Status == null
select new
{
JobOrderCode = jo.JobOrderCode,
JobOrderName = jo.JobOrderName,
OrderCount = jo.OrderCount,
JobOrderDesc = jo.JobOrderDesc,
Status =
(
jo.Status == null ? "未开始" :
jo.Status == "Process" ? "生产中" :
jo.Status == "Stop" ? "暂停" : "未知状态"
), CustomerCode = cu.CustomerCode,
CustomerName = cu.CustomerName, MaterialCode = ma.MaterialCode,
MaterialName = ma.MaterialName,
MaterialSpecification = ma.MaterialSpecification, MouldCode = mo.MouldCode,
MouldName = mo.MouldName,
MouldSpecification = mo.MouldSpecification,
}
).ToList(); return getdocument;
}
catch (Exception ex)
{
throw ex;
} }
Mongodb C#客户端数据关联数据,使用Linq语法进行关联的更多相关文章
- EF里单个实体的增查改删以及主从表关联数据的各种增删 改查
本文目录 EF对单个实体的增查改删 增加单个实体 查询单个实体 修改单个实体 删除单个实体 EF里主从表关联数据的各种增删改查 增加(增加从表数据.增加主从表数据) 查询(根据主表找从表数据.根据从表 ...
- Entity Framework Code First实体关联数据加载
在项目过程中,两个实体数据之间在往往并非完全独立的,而是存在一定的关联关系,如一对一.一对多及多对多等关联.存在关联关系的实体,经常根据一个实体的实例来查询获取与之关联的另外实体的实例. Entity ...
- MongoDB + Spark: 完整的大数据解决方案
Spark介绍 按照官方的定义,Spark 是一个通用,快速,适用于大规模数据的处理引擎. 通用性:我们可以使用Spark SQL来执行常规分析, Spark Streaming 来流数据处理, 以及 ...
- MongoDB 分片键分类与数据分发
In sharded clusters, if you do not use the _id field as the shard key, then your application must en ...
- Android客户端和服务器端数据交互
网上有很多例子来演示Android客户端和服务器端数据如何实现交互不过这些例子大多比较繁杂,对于初学者来说这是不利的,现在介绍几种代码简单.逻辑清晰的交互例子,本篇博客介绍第四种: 一.服务器端: 代 ...
- SpringMVC客户端发送json数据时报400错误
当测试客户端发送json数据给服务器时,找不到响应路径? 原来是参数类型不符,即使是json也要考虑参数的个数和类型 解决:将age请求参数由"udf"改为"3" ...
- MagicalRecord 多表关联数据操作
最近在使用MagicalRecord做数据持久层CoreData的操作库,今天做了一个多表关联数据的操作,整理了一个demo,特此记录一下. 关于如何使用Cocopads 和 MagicalRecor ...
- MongoDB学习(三)数据导入导出及备份恢复
这几天想着公司要用MongoDB,自然就要用到数据导入导出,就自己学习了一下. 在Mongo学习(二)中就讲到了在bin目录下有一些工具,本篇就是使用这些工具进行数据的导入导出及备份恢复. 注意:以下 ...
- response小结(一)——用response向客户端输出中文数据(乱码问题分析)
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象,和代表响应的response对象.request和response对象既然代表请求和响应,那我们要 ...
随机推荐
- [网络流24题] 最长k可重区间集
https://www.luogu.org/problemnew/show/3358 以区间(1,5),(2,6),(7,8)为例 建模方法一: 建模方法二: 离散化区间端点 相当于找k条费用最大的不 ...
- core EFCore 开始尝试
准备工作: 工程:core + console 引用包: Install-Package Microsoft.EntityFrameworkCore Install-Package Microsoft ...
- easy-animation | Animation for Sass
最近因为项目缘故,勾搭上了Sass. 其实在折腾Sass之前,也有简单用过一下Less.但碍于Less提供的一些API实在让人觉得有点多余,用着就是不顺手,最后就不了了之啦. Sass之所以用起来舒服 ...
- TensorFlow在win10上的安装与使用(二)
在上篇博客中已经详细的介绍了tf的安装,下面就让我们正式进入tensorflow的使用,介绍以下tf的特征. 首先tf有它独特的特征,我们在使用之前必须知晓: 使用图 (graph) 来表示计算任务, ...
- sql server 查询本周、本月所有天数的数据
查询本月所有的天数: --本月所有的天数 ),) day from (),,)+'-01' day) t1, ( ) t2 ),) ),,)+'%' 查询本周所有的天数: ),,),) ),,),) ...
- Oracle新建数据库,并导入dmp文件
1:安装Oracle及新建数据库 Oracle 11g安装图解 http://www.cnblogs.com/qianyaoyuan/archive/2013/05/05/3060471.html h ...
- [转]closed-form solution (闭合解/解析解)和数值解的理解
参考整理自:http://hi.baidu.com/cjb366/item/7290773b2d2eb9f2a9842873 closed-form solution :一般翻译为闭合解/解析解.这一 ...
- mvn打war包以及解压包的方法
有时候我们需要查看打成war包之后的目录,如果是maven项目我们可以直接用maven打包. 1.maven打包: 第一种: mvn package 如果不行先 mvn clean一下 第二种:(掌握 ...
- thinkphp报错Call to undefined method app\index\controller\Index::fetch()
因为要写一个系统,所以又重新下载了thinkphp,然后安装了一下.回忆起这个问题很容易让新手朋友费解.会出现如下报错:Call to undefined method app\index\contr ...
- C++面试常见问题
转载:https://zhuanlan.zhihu.com/p/34016871?utm_source=qq&utm_medium=social 1.在C++ 程序中调用被C 编译器编译后的函 ...