当前位置: 首页 > 知识库问答 >
问题:

Mongoose查询更改对象顺序

郑帅
2023-03-14

所讨论的查询是:

{
    "attributes": {
        "$all": [
            {
                "attribute": "an id",
                "value": "a value",
                "deletedOn": null
            },
            {
                "attribute": "an id again",
                "value": "a value",
                "deletedOn": null
            }
        ]
    }
}

但是,mongoose调试的输出是:

users.find({ 
    attributes: { 
        '$all': [ 
            { 
                deletedOn: null,
                attribute: 'an id',
                value: 'a value'
            },
            {
                deletedOn: null,
                attribute: 'an id again',
                value: 'a value'
            }
        ]
    } 
},
    { fields: {} }
)

唯一的更改是将deletedon字段从对象的最后一个位置移到第一个位置。这意味着查询不返回结果。

对这个问题有什么解决办法吗?

共有1个答案

戚正业
2023-03-14

JavaScript中的对象属性没有顺序。您无法确保JavaScript对象上属性的顺序,不同的实现可能会对它们进行不同的排序。有关其他信息,请参阅相关问题的答案。

关键是从规范(ECMAScript)中我们得到:“对象是对象类型的成员。它是一个无序的属性集合,每个属性包含一个基本值、对象或函数。存储在对象属性中的函数称为方法。”

没有“解决方案”,因为这是预期的行为。所以真正的问题是,为什么订单对你来说很重要?你想干什么?

 类似资料:
  • 让我们考虑一下这些帖子的集合。每个帖子都有一个评论数组,每个评论都有一个字符串数组,带有键“likes”,表示喜欢该评论的用户。 如何使用mongoose检查用户是否喜欢具有给定ID的评论?

  • 在使用Mongoose查询数组时,我很难得到我期望看到的内容。一个用户可以有许多与他/她的帐户相关联的房间。room对象存储在集合中附加到用户的数组中。只有一个集合叫做Users。 请考虑以下user和Room的两个架构: 我还应该指出,数据库是填充的,因为我可以看到RoboMongo中的数组(在创建用户帐户时创建了1个元素)。 正在填充从控制台输出到show database的示例数据(包括us

  • 问题内容: 我有一个包含JSON对象的文件。已通过以下方式加载: 此时,input_data仅包含一个字符串,现在我将其解析为JSON: data_content具有我需要的字符串的JSON表示形式,但是由于某种原因,在json.loads之后我不清楚,它改变了键的原始顺序,例如,如果我的文件包含以下内容: 在json.loads之后,顺序更改为类似以下内容: 为什么会这样呢?有办法保留订单吗?我

  • 我一直在研究猫鼬文档,但我找不到一种方法来实现我想要做的事情。考虑一个MangGDB用户集合。还可以考虑一个包含DB集合中所有字段的蒙古人用户模式。 现在,我想登录到控制台,所有用户,但属性已更改。有点像: 用户。图例(): 给定的异步类型。find()函数我不确定这是否可以实现。我来自C#和PHP背景,只处理关系数据库,这可以通过在用户类中使用只返回所需值的函数轻松实现。 能做到吗?!

  • 问题内容: 如何在JDBI中使用SQL对象查询进行排序? 我想做类似的事情: 要么 问题答案: 我最近一直在探索与JDBI捆绑在一起的DropWizard,并很快遇到了同样的问题。不幸的是,JDBI的文档乏善可陈(JavaDoc和它的git存储库中的一些示例单元测试并没有单独解决),这令人失望。 这是我根据示例DAO在JDBI的Sql Object API中实现动态排序的结果: @ UseStri

  • 我有https://github.com/javers/javers/issues/98中描述的类似用例。 在下面的代码中,当我更新dependent对象并提交Employee bob时,我希望对dependent的更改从JQL query 完整代码: 我得到以下输出。这缺少从属名称更改(Ram到Ramsey)。 谢谢