2

我从 UI 获取数据如下,以下所有输入数据都是字符串。

cust_id : temp001 cust_chart_id : 测试 default_chart : false chart_pref_json : {range:6m,chart_type:candlestick,indicators:{},period:Daily,futurepadding:20} }

我正在尝试将 chart_pref_json 存储在 mongodb 中。这个 chart_pref_json 对象实际上是作为下面的字符串存储在 db 中的,

{ "_id" : ObjectId("50aca4caf5d0b0e4d31ef239"), "cust_id" : "temp001", "cust_chart_id" : "testing", "default_chart" : "false", "created_at" : NumberLong("1353491658551"), **"chart_pref_json" : "{range:6m,chart_type:candlestick,indicators:{},period:Daily,futurepadding:20}" }**

但我实际上希望将此 chart_pref_json 存储为 json 对象,如下所示。

{ "_id" : ObjectId("50aca4caf5d0b0e4d31ef239"), "cust_id" : "temp001", "cust_chart_id" : "testing", "default_chart" : "false", "created_at" : NumberLong("1353491658551"), **"chart_pref_json" : {range:6m,chart_type:candlestick,indicators:{},period:Daily,futurepadding:20} }**

任何人都可以帮助我解决这个问题。

4

3 回答 3

2

当您将 JSON 代码作为字符串时,您首先必须解析 JSON 代码,然后将生成的 JSON 对象转换为 BSON 对象。

您可以使用MongoDB 附带的类com.mongodb.util.JSON 。这是一个教程

于 2012-11-22T10:24:38.970 回答
1

由于这是一个 Java 问题,以下是使用 MongoDB Java 驱动程序插入 JSON 的方法:

import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;

public class Main {
    public static void main(String[] args) {
        MongoClientURI uri = new MongoClientURI("mongodb://myuser:mypsw@localhost:27017/mydb");
        MongoClient client = new MongoClient(uri);
        MongoDatabase db = client.getDatabase("mydb");
        String json =
                "{\n" +
                "    \"_id\" : \"MyId\",\n" +
                "    \"foo\" : \"bar\"\n" +
                "}";
        db.getCollection("mycoll").insertOne(Document.parse(json));
    }
}
于 2019-07-03T09:36:21.450 回答
0

在将其设置为应用程序中的字段之前,您需要使用您的语言的 JSON 解码能力将其编码为对象。在 PHP 中,你会这样做:

$db->collection->insert( array(
    'cust_id' => 'temp001',
    … your other fields …
    'chart_pref' => json_decode( $varContainingJson )
) );

对于 Java,以下示例将有所帮助:

BasicDBObject obj = JSON.parse( varContainingJson ); 

https://groups.google.com/forum/?fromgroups=#!topic/mongodb-user/Y3KyG_ZSfJg中有描述

于 2012-11-22T10:21:07.617 回答