Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将新密钥添加到Mongodb上的集合(已订购)_Mongodb_Nosql - Fatal编程技术网

将新密钥添加到Mongodb上的集合(已订购)

将新密钥添加到Mongodb上的集合(已订购),mongodb,nosql,Mongodb,Nosql,我需要在MongoDB上的集合中添加一个新密钥,但希望在其他密钥之前添加它,例如: { "_id" : ObjectId("5dd41934e82a4e79362f2a4a"), "name" : "Mercado Livre", "attached" : false, "consultant" : { "id" : null, "name" : null }, "new_field" : "New Value",

我需要在MongoDB上的集合中添加一个新密钥,但希望在其他密钥之前添加它,例如:

{
    "_id" : ObjectId("5dd41934e82a4e79362f2a4a"),
    "name" : "Mercado Livre",
    "attached" : false,
    "consultant" : {
        "id" : null,
        "name" : null
    },
    "new_field" : "New Value",
    "createdAt" : "2019-11-19 14:32:52",
    "updatedAt" : null,
    "deletedAt" : null,
    "__v" : 0
}
我的文件:

{
    "_id" : ObjectId("5dd41934e82a4e79362f2a4a"),
    "name" : "Mercado Livre",
    "attached" : false,
    "consultant" : {
        "id" : null,
        "name" : null
    },
    "createdAt" : "2019-11-19 14:32:52",
    "updatedAt" : null,
    "deletedAt" : null,
    "__v" : 0
}
我需要在顾问更新所有文档后添加一个新字段,例如:

{
    "_id" : ObjectId("5dd41934e82a4e79362f2a4a"),
    "name" : "Mercado Livre",
    "attached" : false,
    "consultant" : {
        "id" : null,
        "name" : null
    },
    "new_field" : "New Value",
    "createdAt" : "2019-11-19 14:32:52",
    "updatedAt" : null,
    "deletedAt" : null,
    "__v" : 0
}
在Mysql中,我使用

ALTER TABLE document
ADD [COLUMN] new_field VARCHAR(50) AFTER consultant;

MongoDB使用JSON,JSON对象属性是无序的。没有可能的方法来保证属性的顺序,这真的不重要。你在做什么,要求他们按照特定的顺序?即使您确实按您想要的顺序存储了它们,也无法保证它们会按该顺序返回给您


因此,您的问题的答案很简单,您不能。我怀疑是否可以在mongoDB的文档中实现这一点,基本上DB是非规范化的-不保证字段存在或存在于特定位置,因为每个文档都像一个JSON,我认为,除非你用所有需要的字段重新编写文档,否则你可能无法做到!!上次我是这样做的,我需要订购,但我不确定这是否是不可能的,谢谢你的帮助@crispytoes!!MongoDB所做的唯一一件事就是它总是将_id字段放在第一位。