我知道JOIN在文档数据库中是不可能的或不赞成的.我来自关系数据库背景,并试图了解如何处理这种情况.
假设我有一个Employees集合,我存储了所有与员工相关的信息.以下是典型的员工文档:
{
"id": 1234,
"firstName": "John",
"lastName": "Smith",
"gender": "Male",
"dateOfBirth": "3/21/1967",
"emailAddresses":[
{ "email": "johnsmith@mydomain.com", "isPrimary": "true" },
{ "email": "jsmith@someotherdomain.com", "isPrimary": "false" }
]
}
Run Code Online (Sandbox Code Playgroud)
我们还说,我有一个单独的项目集合,我存储的项目数据看起来像这样:
{
"id": 444,
"projectName": "My Construction Project",
"projectType": "Construction",
"projectTeam":[
{ "_id": 2345, "position": "Engineer" },
{ "_id": 1234, "position": "Project Manager" }
]
}
Run Code Online (Sandbox Code Playgroud)
如果我想返回我的所有项目列表以及项目团队,我该如何处理以确保我返回有关团队中个人的所有相关信息,即全名,电子邮件地址等?
这是两个单独的查询吗?一个用于项目,另一个用于ID出现在项目集合中的人员?
如果是这样,我如何插入有关人员的数据,即全名,电子邮件地址?然后我在我的应用程序中执行foreach循环来更新数据吗?
如果我依赖我的应用程序来处理所有相关数据的填充,那么这不是一个性能损失会抵消MongoDB等文档数据库的性能优势吗?
谢谢你的帮助.
在我的 DocumentDb 文档中,我不想包含具有 NULL 值的属性。例如,我有以下 POCO 课程。
public class Person
{
[JsonProperty(PropertyName="id")]
public int PersonId {get; set;}
[JsonProperty(PropertyName="firstName")]
public string FirstName {get; set;}
[JsonProperty(PropertyName="middleName")]
public string MiddleName {get; set;}
[JsonProperty(PropertyName="lastName")]
public string LastName {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
有些人没有中间名,当我将某人的文档保存在我的集合中时,我不希望包含中间名。目前,没有中间名的人被保存为:
{
"id": 1234,
"firstName": "John",
"middleName": null,
"lastName": "Smith"
}
Run Code Online (Sandbox Code Playgroud)
这是正常行为吗?如果不是,如何在文档中不包含具有 NULL 值的中间名属性?
PS 所有序列化/反序列化均由 JSON.NET 处理
在我的解决方案中,我有一个控制台应用程序和另外两个类库项目 - 共计3个项目.
我想现在添加一个单元测试项目.我的问题是,我在解决方案中的每个"常规项目"中添加一个"单元测试项目",还是可以测试所有三个单元测试项目?
换句话说,如果我的项目是projA,projB和projC,我是否会添加三个单元测试项目,例如projA.Tests,projB.Tests等.或者是一个单元测试项目,可以处理所有这三个项目?
有没有办法在Visual Studio 2017中改进JSX编辑?
以下是我的主要问题:
<div>VS 2017什么也没做.我希望能为我自动关闭它.<div>标记的情况.就像花括号一样,单击标签并查看其开/关标签会更好.当我点击<div>我的JSX文件中的一个时,VS 2017会突出显示所有其他DIV.这没用多少.我宁愿看到相应的打开/关闭标签 - 见下文:
关于如何改进JSX编辑体验的任何建议?
PS请不要建议我切换到VS Code或其他编辑器.我是一个完整的堆栈开发人员,当我编写代码或调试代码时,我会在后端和前端之间来回切换.在编辑器之间切换对我来说毫无意义.我喜欢VS 2017给我的力量,我只需要改善一点体验.
此外,我已经安装了Web Essentials 2017,它没有真正解决这些问题.
刚刚安装了Visual Studio 2017 15.3的预览版,但我仍然没有看到在.NET Core中创建WebJobs的方法.这是否可用 - 即使是预览版或测试版 - 还是没有?
PS:这不是主持人建议的重复问题.我只是说在另一篇文章中提出的建议不起作用.
有没有办法公开 React 组件的函数?
class MyComponent extends Component {
someFunction() {
// I'd like to expose this function
}
render() {
return(
<div>Hello World</div>
);
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,我想暴露someFunction()以便我可以从父组件中调用它。
换句话说,我试图从父组件调用子组件的函数。
两个问题:
在Visual Studio中,Gulp未运行以将我的scss文件转换为css.
我得到的错误是:
cmd.exe/c gulp --tasks-simple C:\ Users\sam\Documents\Visual Studio 2017\Projects\MyProject\MyProject \node_modules \node-sass\lib\binding.js:15 throw new Error(errors.missingBinary ()); ^错误:缺少绑定C:\ Users\sam\Documents\Visual Studio 2017\Projects\MyProject\MyProject \node_modules \node-sass\vendor\win32-x64-47\binding.node Node Sass找不到绑定当前环境:带有Node.js 5.x的Windows 64位找到以下环境的绑定: - 带有Node.js 7.x的Windows 64位这通常是因为您的环境自运行以来已更改
npm install.运行npm rebuild node-sass以构建当前环境的绑定.
我确实npm rebuild node-sass在我的项目文件夹的根目录中运行但仍然遇到了同样的错误.这是我跑完后得到的npm rebuild node-sass:
二进制文件位于C:\ Users\sam\Documents\Visual Studio 2017\Projects\MyProject\MyProject \node_modules \node-sass\vendor\win32-x64-51\binding.node测试二进制二进制文件很好node-sass@3.13. 1 C:\ Users\sam\Documents\Visual Studio 2017\Projects\MyProject\MyProject \node_modules \node-sass
我Gulpfile.js看起来像这样:
var gulp = require('gulp'),
sass = require("gulp-sass");;
gulp.task('default', function () {
// place code …Run Code Online (Sandbox Code Playgroud) 我创建了一个"过滤器"函数,它接收一个对象数组.每个对象都有一个accountId属性.我的函数应该过滤掉具有不同的对象accountId.然而,它正在undefined那里推动一个物体.
我的功能出了什么问题?
export const filterItems = (myArray, accountId) => {
let filteredItems = [];
filteredItems.push(myArray.find(items => items.accountId === accountId));
return filteredItems;
}
Run Code Online (Sandbox Code Playgroud)
当我传递accountId给不在数组中的函数时,输出是一个数组,其中有一个项目,项目未定义 - 见下文:
[
0: undefined
]
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
只是抬头:这是一个非常奇怪的问题.我会尽力清楚地解释这个问题.这是在我的ReactJs应用程序中使用React Router.
我有一些组件需要来自URL的某种类型的参数.我也有不依赖于参数的组件.
如果我去那些成分不要求任何参数,有没有任何问题.
所以,我去我的Home,然后Account List,这两个都不需要任何参数,我可以随心所欲地来回走动,没有问题.
但是,如果我转到使用参数的组件,然后尝试使用另一个使用参数的组件,然后我会收到错误.该错误表明组件react-router应该加载未正确安装,这会引发错误,告诉我子组件所需的数据丢失.我得到的错误非常简单.他们简单地说:
this.props.something是必需的,但未定义
这是我的路线App.jsx:
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
import { Route, Switch, withRouter } from 'react-router-dom';
// Import components here
// Just showing one for brevity
import Home from '../components/home/Home';
import * as appActions from '../actions/app-actions';
class App extends Component {
constructor(props) {
super(props);
}
render() …Run Code Online (Sandbox Code Playgroud) javascript reactjs react-router react-router-v4 react-router-dom
如何在 .NET MAUI 应用程序中将页面设置为具有线性背景?
我尝试定义LinearGradientBrushin Colors.xaml,然后将其分配为StaticResource- 见下文 - 但这似乎不起作用。
在 中Colors.xaml,我有这个:
<LinearGradientBrush x:Key="PageGradientBackground" EndPoint="1,1">
<GradientStop
Color="{StaticResource UIOffWhite}"
Offset="0.1"/>
<GradientStop
Color="{StaticResource UILightGray}"
Offset="0.6"/>
<GradientStop
Color="{StaticResource UIMidGray}"
Offset="1.0"/>
</LinearGradientBrush>
Run Code Online (Sandbox Code Playgroud)
然后像这样使用它:
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
BackgroundColor="{StaticResource PageGradientBackground}">
<!-- ... -->
</ContentPage>
Run Code Online (Sandbox Code Playgroud)
我也尝试过内联定义它,但这也不起作用。这实际上是不允许的:
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
<ContentPage.BackgroundColor>
<LinearGradientBrush>
</LinearGradientBrush>
</ContentPage.BackgroundColor>
<!-- ... -->
</ContentPage>
Run Code Online (Sandbox Code Playgroud)
知道如何为 a 提供渐变背景ContentPage吗?