bson

GO Mongodb时间处理

回眸只為那壹抹淺笑 提交于 2021-01-29 05:28:56
go在操作monogdb时间的时候如果使用time.Time时间格式,则前后端的时间显示是这样的:2021-01-28T06:38:43.622Z;这种格式很不友好(时区还不对),更多时候我们可能需要的是这种格式:2021-01-28 14:38:43;在网上查了一些资料,发现解决方案都不太好,有的是要手动做转换,有的是改变了mongodb的存储内容;我这里综合了一些资料给出以下解决方法(通过申明time.Time的扩展,重写json和bson序列化代码实现): 序列化处理代码: package common import ( "errors" "fmt" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson/bsontype" "go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/x/bsonx/bsoncore" "time" ) type JsonTime time.Time const ( timeFormart = "2006-01-02 15:04:05" ) //实现json反序列化,从传递的字符串中解析成时间对象 func (t *JsonTime) UnmarshalJSON(data [

RDD of BSONObject to a DataFrame

我怕爱的太早我们不能终老 提交于 2021-01-28 18:47:49
问题 I'm loading a bson dump from Mongo into Spark as described here. It works, but what I get is: org.apache.spark.rdd.RDD[(Object, org.bson.BSONObject)] It should basically be just JSON with all String fields. The rest of my code requires a DataFrame object to manipulate the data. But, of course, toDF fails on that RDD. How can I convert it to a Spark DataFrame with all fields as String ? Something similar to spark.read.json would be great to have. 回答1: val datapath = "path_to_bson_file.bson"

MongoDB Stitch returns data as $NumberDouble instead of the number itself

做~自己de王妃 提交于 2021-01-28 05:39:13
问题 I'm using MongoDB Stitch to create a data enabled API, but when I make a GET request, the data is returned where numbers are displayed as: "firstHit": { "$numberInt": "3" Where I would like them to be return just as: "firstHit": 3 I have a lot of objects within objects, and I am inserting the data through the mongo shell, I'm not sure of that is of any importance. Anyone have any experience with this? Thank you! 回答1: By default, the result format returned by MongoDB Stitch webhooks is in

Convert Newtosoft JObject directly to BsonDocument

家住魔仙堡 提交于 2021-01-27 19:45:12
问题 Try to convert JObject to BsonDocument using this example https://www.newtonsoft.com/json/help/html/WriteJTokenToBson.htm ( BsonWriter obsolete, so I use BsonDataWriter ) var jObject = JObject.Parse("{\"name\":\"value\"}"); using var writer = new BsonDataWriter(new MemoryStream()); jObject.WriteTo(writer); var bsonData = writer.ToBsonDocument(); Console.WriteLine(bsonData.ToJson()); output: { "CloseOutput" : true, "AutoCompleteOnClose" : true, "Formatting" : 0, "DateFormatHandling" : 0,

Convert Newtosoft JObject directly to BsonDocument

大城市里の小女人 提交于 2021-01-27 19:20:46
问题 Try to convert JObject to BsonDocument using this example https://www.newtonsoft.com/json/help/html/WriteJTokenToBson.htm ( BsonWriter obsolete, so I use BsonDataWriter ) var jObject = JObject.Parse("{\"name\":\"value\"}"); using var writer = new BsonDataWriter(new MemoryStream()); jObject.WriteTo(writer); var bsonData = writer.ToBsonDocument(); Console.WriteLine(bsonData.ToJson()); output: { "CloseOutput" : true, "AutoCompleteOnClose" : true, "Formatting" : 0, "DateFormatHandling" : 0,

MongoDB Search nested Objects without knowing Key

断了今生、忘了曾经 提交于 2021-01-27 17:10:30
问题 I have a list of objects that are given somewhat arbitrary Object keys as a result of using the async Java driver + BSON. My issue is given the fact that jobStatuses are an arbitrary list of Dictionary items where I don't know the key, I have no idea how to access its sub-values. In the end, I'm trying to build a query that returns if ANY of jobStatus.*._id are true given a list of potential Object ID's. So I'd be giving a list of ID's and want to return true if ANY of the items in

Run native mongodb query with mongodb java driver

南笙酒味 提交于 2021-01-27 07:37:05
问题 I want to execute CRUD operations with java like updateOne() , updateMany() or deleteMany() etc. But when I want to run with operators like $set , $unset I have to import new classes like Updates or create nested Document objects. I want to insert JSON query as native Mongodb uses. Ex: myCollection.updateOne(Json_String_filter,Query_with_operoters_like_$set_as_Json_string); 回答1: Use Document.parse(String json) from org.bson.Document . It returns Document object. Here is an example from

8天学通MongoDB——第一天 基础入门

我们两清 提交于 2020-12-25 10:27:05
原文地址: https://www.cnblogs.com/huangxincheng/archive/2012/02/18/2356595.html 关于mongodb的好处,优点之类的这里就不说了,唯一要讲的一点就是mongodb中有三元素:数据库,集合,文档,其中“集合” 就是对应关系数据库中的“表”,“文档”对应“行”。 一: 下载 上 MongoDB官网 ,我们发现有32bit和64bit,这个就要看你系统了,不过这里有两点注意: ①:根据业界规则,偶数为“稳定版”(如:1.6.X,1.8.X),奇数为“开发版”(如:1.7.X,1.9.X),这两个版本的区别相信大家都知道吧。 ②:32bit的mongodb最大只能存放2G的数据,64bit就没有限制。 我这里就下载"2.0.2版本,32bit“,ok,下载之后我就放到”E盘“,改下文件夹名字为”mongodb“。 二:启动 ①:启动之前,我们要给mongodb指定一个文件夹,这里取名为”db",用来存放mongodb的数据。 ②:微软徽标+R,输入cmd,首先找到“mongodb”的路径,然后运行mongod开启命令,同时用--dbpath指定数据存放地点为“db”文件夹。 ③:最后要看下是否开启成功,从图中的信息中获知,mongodb采用27017端口,那么我们就在浏览器里面键入“ http://localhost

基于spring-data 实现mongodb changestream

帅比萌擦擦* 提交于 2020-12-22 05:05:29
最近项目要求对mongodb的数据变更操作记录操作日志,首先想到的是基于spring的AOP对变更的接口进行拦截处理,由于调用接口的点很多不是很方便的去梳理,考虑使用mongodb的CDC机制,实时监控数据的变更。 首先是springboot集成mongodb,mongdb需要是3.6以上的版本才能支持changestream <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.3.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> </dependencies> 首先配置mongo监听器,用于接收数据库的变更信息 import com.mongodb.client.model.changestream.ChangeStreamDocument; import lombok.extern.slf4j. Slf4j

MongoDB的备份与恢复

▼魔方 西西 提交于 2020-12-21 20:35:25
MongoDB的备份与恢复 1.1 MongoDB的常用命令 mongoexport / mongoimport mongodump / mongorestore    有以上两组命令在备份与恢复中进行使用。 1.1.1 导出工具mongoexport Mongodb中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。 该命令的参数如下: 参数 参数说明 -h 指明数据库宿主机的IP -u 指明数据库的用户名 -p 指明数据库的密码 -d 指明数据库的名字 -c 指明collection的名字 -f 指明要导出那些列 -o 指明到要导出的文件名 -q 指明导出数据的过滤条件 --type 指定文件类型 --authenticationDatabase 验证数据的名称 mongoexport 备份实践 备份app库下的vast集合 mongoexport -h 10.0 . 0.152 : 27017 -uroot -proot --authenticationDatabase admin -d app -c vast -o /home/mongod/backup/vasts.dat 注:备份文件的名字可以自定义,默认导出了JSON格式的数据。 导出CSV格式的数据