小编Mor*_*ool的帖子

在一个集合的所有文档上具有唯一值的数组

情况: 我有几个相同集合(帐户)的文档,每个文档都有一个类型为array(string)的属性,名为uniquestrings.

问题: uniquestrings中的每个条目必须对mongodb中的所有文档都是唯一的.似乎MongoDB/Mongoose没有提供这样的验证(addToSet¹和index:{unique:true}²都没有解决问题).是否有一种模式来重构我的文档架构以确保mongodb本身可以验证它?目前,软件本身在更新文档之前检查它.

例如

account {
  _id: 111,
  uniquestrings: ["a", "b", "c"]
}

account {
  _id: 222,
  uniquestrings: ["d", "e", "f"]
}
Run Code Online (Sandbox Code Playgroud)

例如,account(222).uniquestrings.push("a");通过从mongo抛出重复错误来防止.

¹数组中的唯一性是不够的
²数组中的每个项目必须在整个集合中是唯一的

UPDATE1:

更多例子.受影响的架构条目如下所示:

var Account = new Schema({
    ...
    uniquestrings: [{type: String, index: {unique: true}}]
    ...
});
Run Code Online (Sandbox Code Playgroud)

现在创建4个帐户文档.我想只有1和2可以,休息应该失败.

var accountModel1 = new Account.Model({uniquestrings: ["a", "b"]});
accountModel1.save(); // OK
var accountModel2 = new Account.Model({uniquestrings: ["c", "d"]});
accountModel2.save(); // OK
var accountModel3 = new Account.Model({uniquestrings: ["c", "d"]});
accountModel3.save(); // FAIL => Not unique, so far …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb

12
推荐指数
2
解决办法
1761
查看次数

Promise中的this.setState会导致奇怪的行为

简化问题.在Promise中调用this.setState,在结束挂起Promise之前呈现.

我的问题是:

  1. this.setState不会立即返回
    • 我希望它是异步的,以便先挂起未决的承诺.
  2. 如果渲染函数内部出现问题,则调用Promise中的catch.
    • 也许同样的问题1)似乎渲染仍然在调用this.setState的promise的上下文中.

import dummydata_rankrequests from "../dummydata/rankrequests";
class RankRequestList extends Component {

  constructor(props) {
    super(props); 

    this.state = { loading: false, data: [], error: null };

    this.makeRankRequestCall = this.makeRankRequestCall.bind(this);
    this.renderItem = this.renderItem.bind(this);
  }

  componentDidMount() {

    // WORKS AS EXPECTED
    // console.log('START set');
    // this.setState({ data: dummydata_rankrequests.data, loading: false });
    // console.log('END set');

    this.makeRankRequestCall()
    .then(done => {
      // NEVER HERE
      console.log("done");
    });    
  }

  makeRankRequestCall() {
    console.log('call makeRankRequestCall');
    try {
      return new Promise((resolve, reject) => {
        resolve(dummydata_rankrequests);
      })
      .then(rankrequests => …
Run Code Online (Sandbox Code Playgroud)

react-native

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

Rust 的 Github 操作显示 Node.js 警告 (12 - 16)

有谁知道为什么这里需要 Node.js 吗?


name: Rust

on:
  push:
    branches: [ "develop" ]
  pull_request:
    branches: [ "develop" ]

env:
  CARGO_TERM_COLOR: always

jobs:
  fmt:
    name: Rustfmt
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          override: true
          components: rustfmt
      - uses: actions-rs/cargo@v1
        with:
          command: fmt
          args: --all -- --check
...
Run Code Online (Sandbox Code Playgroud)

锈病

Node.js 12 操作已弃用。有关更多信息,请参阅: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/

请更新以下操作以使用 Node.js 16:actions-rs/toolchain、actions-rs/cargo

完整源码

rust github-actions

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

nginx server_name 正则表达式

nginx 中的 server_name 不匹配

我想与我想出的此类 FQDN 相匹配

server_name "~^(www.)?ucwebapi-uccore(\d{0,3})-(\d{0,3})\.testme\.net";
Run Code Online (Sandbox Code Playgroud)

匹配

ucwebapi.testme.net
ucwebapi-uccore.testme.net
ucwebapi-uccore1-0.testme.net
ucwebapi-uccore999-999.testme.net
Run Code Online (Sandbox Code Playgroud)

通过https://regex101.com/r/tAwEp9/2验证

测试过

server_name "~^(www.)?ucwebapi-uccore(\d{0,3})-(\d{0,3})\.testme\.net ucwebapi1.testme.net";
Run Code Online (Sandbox Code Playgroud)

查看 ucwebapi1.testme.de 服务器是否可访问。

有什么限制我不知道吗?谢谢你。

nginx

5
推荐指数
1
解决办法
1万
查看次数

获取当前执行的描述/测试名称

jest(jasmine)是否可以为测试的当前执行名称或在测试内部进行描述?

使用茉莉花:如何获得当前测试的名称不再起作用,或者至少在玩笑中没有作用。

例如

test('Error missing body', (done) => {
  console.log('Currently executing: ' + REFERENCE_TO_TEST_NAME);
  done();
});
Run Code Online (Sandbox Code Playgroud)

谢谢

jasmine jestjs

5
推荐指数
1
解决办法
1845
查看次数

休眠更新为空,然后尝试通过更新的列删除

我只想从数据库中删除那些未使用的属性(orphanRemoval=true)。我得到的是它首先尝试更新参考 PRODUCT_ID,然后删除它。但由于参考是键的一部分,它不能。

家长:

    @Entity
    @Table(name = "STYLE")
    public class Style implements IterableById, Serializable {
    ...
        @OneToMany(fetch=FetchType.LAZY, cascade=CascadeType.ALL, orphanRemoval=true)
        @JoinColumn(name="PRODUCT_ID", referencedColumnName = "PRODUCT_ID")
        private List<Attribute> attributes;
    ...
Run Code Online (Sandbox Code Playgroud)

它的孩子

    @Entity
    @Table(name="ATTRIBUTE")
    public class Attribute{
        @EmbeddedId
        private Id id;
        ...

        @Embeddable
        public static class Id implements Serializable{

        private static final long serialVersionUID = -8631874888098769584L;

        @Column(name="PRODUCT_ID")
        protected Long productId;

        @Column(name="NAME")
        protected String name;

        @Column(name="COUNTRY_CODE")
        protected String countryCode;
        ...
Run Code Online (Sandbox Code Playgroud)

在我获取属性列表并清除之后,然后尝试提交我得到

    ...
    Hibernate: update ATTRIBUTE set PRODUCT_ID=null where PRODUCT_ID=?
    Hibernate: delete from ATTRIBUTE where COUNTRY_CODE=? and …
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa

4
推荐指数
2
解决办法
4852
查看次数

在对象属性内重用架构定义

问题:我想重用定义。一次直接进入,一次进入一个物体。以下代码有效,但是来自http://editor.swagger.io/#/的验证器说“无效的响应定义”并指向行“ 200”。

我真的必须两次定义“帐户”吗?还是验证者有问题?

 *     responses:
 *       200: <---- ERROR POINTING HERE
 *         description: Updated account
 *         schema:
 *           type: object
 *           properties:
 *             data:
 *               type: object
 *               properties:
 *                 account:
 *                   schema:
 *                     $ref: '#/definitions/Account'
Run Code Online (Sandbox Code Playgroud)

定义本身:

 "Account" : {
    "type" : "object",
    "required": [
        "id", "username", "lastname", "firstname", "traderid", "customerid", "company", "validated"
    ],
    "properties": {
        "id": {
            "type": "string"
        },
        "username" : {
            "type": "string"
        },
        "lastname" : {
            "type": "string"
        },
        "firstname" : {
            "type": "string" …
Run Code Online (Sandbox Code Playgroud)

swagger swagger-2.0

2
推荐指数
1
解决办法
2360
查看次数