小编Sam*_*Sam的帖子

没有JOIN,处理文档数据库中数据的正确方法是什么?

我知道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等文档数据库的性能优势吗?

谢谢你的帮助.

sql document mongodb mongodb-query azure-cosmosdb

6
推荐指数
1
解决办法
263
查看次数

删除具有空值的属性

在我的 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 处理

azure json.net azure-cosmosdb

6
推荐指数
2
解决办法
3348
查看次数

一个或多个解决方案的单元测试项目

在我的解决方案中,我有一个控制台应用程序和另外两个类库项目 - 共计3个项目.

我想现在添加一个单元测试项目.我的问题是,我在解决方案中的每个"常规项目"中添加一个"单元测试项目",还是可以测试所有三个单元测试项目?

换句话说,如果我的项目是projA,projB和projC,我是否会添加三个单元测试项目,例如projA.Tests,projB.Tests等.或者是一个单元测试项目,可以处理所有这三个项目?

c# unit-testing mstest class-library visual-studio-2015

6
推荐指数
1
解决办法
1508
查看次数

在Visual Studio 2017中改进JSX编辑

有没有办法在Visual Studio 2017中改进JSX编辑?

以下是我的主要问题:

  1. VS 2017不会自动关闭我在JSX文件中打开的HTML标记.例如,我打开一个新的<div>VS 2017什么也没做.我希望能为我自动关闭它.
  2. 当您在JSX中创建越来越多的HTML元素时,哪些标记正在关闭什么会让人感到困惑 - 尤其是<div>标记的情况.就像花括号一样,单击标签并查看其开/关标签会更好.当我点击<div>我的JSX文件中的一个时,VS 2017会突出显示所有其他DIV.这没用多少.我宁愿看到相应的打开/关闭标签 - 见下文:在此输入图像描述

关于如何改进JSX编辑体验的任何建议?

PS请不要建议我切换到VS Code或其他编辑器.我是一个完整的堆栈开发人员,当我编写代码或调试代码时,我会在后端和前端之间来回切换.在编辑器之间切换对我来说毫无意义.我喜欢VS 2017给我的力量,我只需要改善一点体验.

此外,我已经安装了Web Essentials 2017,它没有真正解决这些问题.

jsx visual-studio react-jsx visual-studio-2017

6
推荐指数
1
解决办法
744
查看次数

使用VS 2017的.NET Core中的Azure WebJobs 15.3

刚刚安装了Visual Studio 2017 15.3的预览版,但我仍然没有看到在.NET Core中创建WebJobs的方法.这是否可用 - 即使是预览版或测试版 - 还是没有?

PS:这不是主持人建议的重复问题.我只是说在另一篇文章中提出的建议不起作用.

在此输入图像描述

azure-webjobs azure-webjobssdk .net-core visual-studio-2017

6
推荐指数
1
解决办法
795
查看次数

公开 React 组件的函数

有没有办法公开 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()以便我可以从父组件中调用它。

换句话说,我试图从父组件调用子组件的函数。

两个问题:

  1. 我可以这样做吗?如果是这样,怎么办?
  2. 这可能是一个更重要的问题:我应该这样做吗?我总是注意我现在可能需要的东西可能会暴露架构缺陷。所以,我想知道我是否应该从父组件调用子组件的函数。

reactjs

6
推荐指数
2
解决办法
8195
查看次数

Gulp没有将scss转换为css

在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)

visual-studio node.js npm gulp gulp-sass

6
推荐指数
1
解决办法
734
查看次数

JS找到推送未定义的函数

我创建了一个"过滤器"函数,它接收一个对象数组.每个对象都有一个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)

我究竟做错了什么?

javascript

6
推荐指数
1
解决办法
53
查看次数

componentDidMount()未被调用,但仅在特定情况下被调用

只是抬头:这是一个非常奇怪的问题.我会尽力清楚地解释这个问题.这是在我的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

6
推荐指数
1
解决办法
1821
查看次数

.NET MAUI 应用程序中的渐变页面背景

如何在 .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吗?

xaml maui

6
推荐指数
1
解决办法
3009
查看次数