导航:首页 > 编程语言 > mongodb返回json数据

mongodb返回json数据

发布时间:2021-03-07 16:54:26

㈠ 怎样向MongoDB中导入json文件

mongodb导入json格式的文件的命抄令是袭mongoimport:

在下面的这个例子中,使用mongoimport命令将文件contacts.json中的内容导入user数据库的contacts的数据表中。

mongoimport --db users --collection contacts --file contacts.json

具体过程演示如下:

切换到mongodb安装的bin目录下,启动服务

./mongod --dbpath /home/test/ --logpath /home/test/log/xushuai.log --fork1

㈡ 如何使用MongoDB自带的json库来反序列json字符串

MongoDB的文档使用BSON(Binary JSON)来组织数据,BSON类似于JSON,JSON只是一种简单的表示数据的方式,只包含了6种数据类型(null、布尔、数字、字符串、数组及对象),不能完全满足复杂业务的需要,因此,BSON还提供日期、32位数字、64位数字等类型。以下对mongoDB的类型进行简要说明: 1、 null null类型用于表示空值或不存在的字段,如:{“one”:null}2、 布尔类型 布尔类型有两上值,’true’和’false’ ,如:{“one”:true}3、 32位整数 在由于mongoDB的控制台使用JS引擎进行输入,而JS仅支持64位浮点数,所以32位整数将会被自动转义;4、 64位整数 64位整数与32位整数一样,在MongoDB控制台使用时,会转义成64位浮点数。除外,如果数据库本身存储的数据类型无论是32位整数还是64位整数,使用MongoDB控制台获取后,更改其文档记录(即使没有修改整数本身,只修改了文档的其他部分),并重新使用控制台写回数据库,则其数据类型也会变成了64位浮点数。 除外,使用控制台查看一个64位整数时,可能会不正确定,原因是有些64位的整数不能精确表示为64位浮点数,而控制台呈示都是64位浮点数。 5、 64位浮点数 MongoDB控制台数字的默认类型,如:{“one”:2.02} {“one”:10}6、 字符串 如:{“one”:”Hello World”}7、 符号 在MongoDB控制台中不支持这种类型,将自动转义成字符串;8、 对象id 对象id是文档中唯一的12位的ID ,

㈢ Mongodb多层嵌套数组如何精确查询(内容处为格式化的json截图,评论里面是json的内容)

感觉你设计的数据结构太复杂,内嵌文档太多层了,为什么不一个学生一条记录呢,这样设计部是更简洁吗,查询统计什么的都很简单,你现在的文档一次查询是得不到你想要的结构的,只能用聚合看能不能实现。

java如何读取json文件并将其存入Mongodb数据库中

因为Java操作mongodb需要使用相关的ORM驱动,所以你最好是读取json数据后转成Java对象然后调用驱动方法存入到数据库中即可。

㈤ mongodb 存储是json吗

MongoDB存储数据类型为BSON(Binary JSON).

MongoDB 是一个基于分布式文件存储的数据库。它将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

数据格式示例:

  1. BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和BinData类型。

  2. mongoDB对JSON串做了一些增加,使其可以支持更多的数据类型,并且将其作为存储结构。

  3. BSON可以做为网络数据交换的一种存储形式,是一种schema-less的存储形式,它的优点是轻量性、高灵活性、可遍历性、高效性,但它的缺点是空间利用率不是很理想。

参考来源:

  1. http://blog.csdn.net/leshami/article/details/52668870

  2. https://www.mongodb.com/json-and-bson

㈥ 如何使用python处理带有Mongodb的不规则json数据

#coding=utf-8
import sunburnt
import urllib
from pymongo import Connection
from bson.objectid import ObjectId
import logging
from datetime import datetime
import json
from time import mktime
from feedparser import _parse_date as parse_date
import time
import sys
import getopt
import ConfigParser
args = sys.argv[1:]
optlist, args = getopt.getopt(args, 'c:')
cmd_opt = {}
for opt in optlist:
cmd_opt[opt[0]] = opt[1]
conf_file = cmd_opt['-c']
config = ConfigParser.ConfigParser()
config.read(conf_file)
hostname = config.get("mongodb", "hostname")
port_num = int(config.get("mongodb", "port_num"))
db_name = config.get("mongodb", "db")
connection = Connection(hostname, port_num)
db = connection[db_name]
courseTable = db.course
lecTable = db.lecture
try:
f = file("json1-14/14.json")
s = json.load(f)
courseData = s["results"]["course"]
lecDataArr = s["results"]["lecture"]
f.close
print "get file content successfully!"
#insert course
courseId = courseTable.save(courseData)
courseId = str(courseId)
print "courseId: "+courseId
print "lec length: "+str(len(lecDataArr))
#insert lecture
lecIdArr = []
for lecData in lecDataArr:
lecData["course_id"] = courseId
lecId = lecTable.save(lecData)
lecIdArr.append(str(lecId))
# update course
courseTable.update({'_id':ObjectId(courseId)},
{"$set":{"lectures.lecture_id_list":lecIdArr}},
upsert=True, multi=True);
print 'insert successfully!'
except Exception, e:
print e

㈦ java程序中,如何把json对象转换成mongodb对象,然后存到mongodb数据库中

你使用的mongodb的Java驱动里有相应的存储对象的方法,存储的对象应该是Java对象,所以你需要把json对象转换成Java对象然后存储到mongodb中就可以了。

㈧ 怎么读取mongodb中的数据打包成json

在对mongodb中的字段值进行解析的时候发现,因为这个值是json字符串,需要对其进行反序列版化。
解决方法:
首先想到了到h用权MongoDB自带的json库来反序列json字符串2012-3-23阅读3840
评论0需求:
在对mongodb中的字段值进行解析

㈨ js怎么把mongodb里面的数据以json形式输出

js把mongodb里面的数据以json形式输出需要依赖外部js:
1、db.js从db获取数据
var getUsersByCity = function(city, cb) {
db.users.find({'city': city}).toArray(cb);
}

2、输出json格式的server.js
app.post("/get_users_list", function(req, res) {
var body = req.body;
db.getUsersByCity(body.city, function(err, data){
if (err) {
console.log(err);
return res(err);
} else {
console.log(data); //这里输出json格式数据
return res.json(data);
}
});
});

㈩ 如何使用MongoDB结合Jackson JSON实现接口快速开发

通过按行读取文件中的内容模拟Web应用各客户端发来的数据,然后将它们存储到MongoDB中;
输出部分将实现一个按条件查询,从MongoDB中得到的查询结果将通过控制台输出。这样就能模拟Web应用服务端响应请求,将数据推送到客户端页面的场景了。
(特别注意:本文中设计到的所有源代码都是UTF-8格式编码的)
先实现一个连接属性的配置
MongoDBConnConfig.java

package net.csdn.blog.chaijunkun;

public class MongoDBConnConfig {
//MongoDB主机名称或IP
public static final String SERVER= "localhost";
//MongoDB端口
public static final int PORT= 27017;
//使用的数据库名称
public static final String ORDERS_DATABASE= "orders";
}

再实现一个Morphia框架与MongoDB的集成方法

MongoDBDataStore.java

package net.csdn.blog.chaijunkun;

import java.net.UnknownHostException;

import com.google.code.morphia.Datastore;
import com.google.code.morphia.Morphia;
import com.mongodb.Mongo;
import com.mongodb.MongoException;

/**
* MongoDB联合Morphia框架生成DataStore的类
* @author chaijunkun
*
*/
public class MongoDBDataStore {
/**
* 生成Orders数据库Datastore对象
* @return 返回Datastore对象 发生异常返回为null
*/
public static Datastore getOrdersInstance(){
Mongo connection = null;
try {
connection = new Mongo(MongoDBConnConfig.SERVER, MongoDBConnConfig.PORT);
} catch (UnknownHostException e) {
return null;
} catch (MongoException e) {
return null;
}
Morphia morphia= new Morphia();
return morphia.createDatastore(connection, MongoDBConnConfig.ORDERS_DATABASE);
}
}

我们还需要一个Java对象到MongoDB文档和Java对象到输出JSON对象的POJO实体:

OrderInfo.java

package net.csdn.blog.chaijunkun.entities;

import java.util.Date;

import org.bson.types.ObjectId;
import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.map.annotate.JsonDeserialize;
import org.codehaus.jackson.map.annotate.JsonSerialize;

import com.google.code.morphia.annotations.Entity;
import com.google.code.morphia.annotations.Id;
import com.google.code.morphia.annotations.PostPersist;
import com.google.code.morphia.annotations.PrePersist;

//morphia中的注解 标明该对象存入orderInfo集合中 并且不存储类名
@Entity(value="orderInfo", noClassnameStored= true)
public class OrderInfo {
//morphia中的注解 标明该key为标识字段(MongoDB中特殊的ObjectId字段)
@Id
//Jackson中的注解 标明在序列化与反序列化过程中不使用该key
@JsonIgnore(value= true)
private ObjectId id;

private Long orderId;

private String proctName;

private Integer quantity;

private Float unitPrice;

//Jackson中的注解 标明该字段使用自定义的DateSerializer类实现序列化
@JsonSerialize(using= DateSerializer.class)
//Jackson中的注解 标明该字段使用自定义的DateDeserializer类实现反序列化
@JsonDeserialize(using= DateDeserializer.class)
private Date orderDate;

private String contactName;

private String address;

private String phone;

@SuppressWarnings("unused")
//morphia中的注解 指示在存入MongoDB之前的操作
@PrePersist
private void beforeSaving(){
System.out.println("即将保存对象:"+ this.toString());
}

@SuppressWarnings("unused")
//morphia中的注解 指示在存入MongoDB之后的操作
@PostPersist
private void afterSaving(){
System.out.println("对象保存完毕:"+ this.toString());
}

//以下就是Getters和Setters了
public ObjectId getId() {
return id;
}

public void setId(ObjectId id) {
this.id = id;
}

public Long getOrderId() {
return orderId;
}

public void setOrderId(Long orderId) {
this.orderId = orderId;
}

public String getProctName() {
return proctName;
}

public void setProctName(String proctName) {
this.proctName = proctName;
}

public Integer getQuantity() {
return quantity;
}

public void setQuantity(Integer quantity) {
this.quantity = quantity;
}

public Float getUnitPrice() {
return unitPrice;
}

public void setUnitPrice(Float unitPrice) {
this.unitPrice = unitPrice;
}

public Date getOrderDate() {
return orderDate;
}

public void setOrderDate(Date orderDate) {
this.orderDate = orderDate;
}

public String getContactName() {
return contactName;
}

public void setContactName(String contactName) {
this.contactName = contactName;
}

public String getAddress() {
return address;
}

public void setAddress(String address) {
this.address = address;
}

public String getPhone() {
return phone;
}

public void setPhone(String phone) {
this.phone = phone;
}
}
我们注意到上面的POJO实体中包含Date(日期)类型的数据。这类数据特别指定了它的序列化与反序列化方法,下面我们来具体看一下:

序列化方法:DateSerializer.java

package net.csdn.blog.chaijunkun.entities;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.map.JsonSerializer;
import org.codehaus.jackson.map.SerializerProvider;

public class DateSerializer extends JsonSerializer<Date>{

@Override
public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
throws IOException, JsonProcessingException {
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String formatedDate= sdf.format(date);
jsonGenerator.writeString(formatedDate);
}

}
这其实是Jackson中的一个很实用的功能,通过自定义序列化器,可以实现Java对象到JSON的数据格式自定义。例如Date的格式我们可以任意改写。上面的泛型类被具象为Date类型。重写了serialize方法。输入的date参数就是将要被序列化的数据,jsonGenerator就是序列化的上下文。当数据内容被整理好后将内容写入序列化的上下文中就完成了自定义过程。

类似地,我们来看一下反序列化方法DateDeserializer.java

package net.csdn.blog.chaijunkun.entities;

import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.map.DeserializationContext;
import org.codehaus.jackson.map.JsonDeserializer;

public class DateDeserializer extends JsonDeserializer<Date>{

@Override
public Date deserialize(JsonParser jsonParser, DeserializationContext deserializationContext)
throws IOException, JsonProcessingException {
String unformatedDate= jsonParser.getText();
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date retVal;
try {
retVal = sdf.parse(unformatedDate);
} catch (ParseException e) {
return null;
}
return retVal;
}
}

泛型的JSON反序列化类被我们具象成了Date类型的,并且重写了deserialize方法。传入的jsonParser是反序列化过程中的上下文,通过它我们可以找到当前处理的JSON字段内容。然后将内容按照特定的要求来生成对应的数据类型(Date),然后作为返回值将其返回。此时POJO中相应的字段就顺利完成了反序列化。另外这样做还能保证类型安全。

阅读全文

与mongodb返回json数据相关的资料

热点内容
红妆刀下留糖全文txt 浏览:495
住在一楼楼的女人韩国电影 浏览:764
阿尔法战士电影全集 浏览:301
穿越到港综鬼片世界的小说 浏览:46
国外网站电影 浏览:79
禁播的电影在什么网站可以看到 浏览:763
真实电影里面的马尾女孩是谁 浏览:352
电影中的黑丝美女 浏览:410
香港女同大尺度电影 浏览:812
txt肉文小说下载网站 浏览:164
护花野蛮人类似的小说有什么 浏览:189
易语言制作大数据表格 浏览:841
成龙演的双胞胎的电影叫什么名字 浏览:774
韩国理论电影免费中字 浏览:166
来回穿梭现代和抗战 浏览:395
头发全是蛇的女孩电影 浏览:318
linux下web服务器配置 浏览:38
吕良伟演的释迦牟尼什么电影 浏览:129
288tv 浏览:892
欧美电影视频在线网站 浏览:719

友情链接