json数据保存到postgresql的顺序不同

json数据保存到postgresql的顺序不同,json,node.js,postgresql,jsonb,Json,Node.js,Postgresql,Jsonb,当我将数据保存到表中时,请从表中进行选择,使其成为不同的顺序,我也会在pgadmin中进行检查。 为什么?如何解决呢 CREATE TABLE IF NOT EXISTS "user_role_track"( "id" SERIAL NOT NULL, "create_date" timestamp without time zone, "create_by_user_id" integer, "action" integer, "old_data" js

当我将数据保存到表中时,请从表中进行选择,使其成为不同的顺序,我也会在pgadmin中进行检查。
为什么?如何解决呢

CREATE TABLE IF NOT EXISTS "user_role_track"(
    "id" SERIAL NOT NULL,
    "create_date" timestamp without time zone,
    "create_by_user_id" integer,
    "action" integer,
    "old_data" jsonb,
    "new_data" jsonb
  );
在nodejs应用程序中创建数据

var newData = {
  "id": userRoleId,
  "create_date": timestamp,
  "user_id": userId,
  "role": role
};
... 

// save with promise sync function
var dbQueryR = yield Promise.resolve( queryPromise(dbClient, dbQuery, dbParams) );
从表格中选择/查看pgadmin

"{"id": 2, "role": 1, "user_id": 17, "create_date": "2016-07-11 09:09:18"}"

如果我理解正确的话,您的json元素在insert?之后就混在一起了

然后看看

对象是一组无序的名称/值对

如中所述

您不能也不应该依赖 JSON对象


由于DBMS进行了优化,因此无法保证存储数据的顺序。如果您需要特定的顺序,您应该使用
orderby
来获取结果。如果您关心键的顺序,请使用
json
而不是
jsonb
类型。@Abelisto谢谢。但我认为jsonb非常适合我的需要