MongoDB $bitsAllClear with BinData - how it works? - mongodb

Does anyone knows how the mongodb $bitsAllClear works?
I ready the document from https://docs.mongodb.com/manual/reference/operator/query/bitsAllClear/ i am trying to understand how can i create a BinData from a bitmask
For example the documentation says:
(the binary representation of BinData(0, "ID==") is 00010100.
How can i transform the 00010100 to binary to insert in the document? Is there any online converted to try?

(the binary representation of BinData(0, "ID==") is 00010100.
This example looks incorrect to me. BinData takes a base64 encoded string as its second argument, and the base64 encoding of 00010100 is FA==. Other examples on that same page look correct, so I suspect it's a typo.
In node, you can do the conversion from a binary string to base64 like so:
const hexString = parseInt('00010100', 2).toString(16);
Buffer.from(hexString, 'hex').toString("base64") // FA==
Online tool to test out encodings here -> https://cryptii.com/pipes/binary-to-base64

Related

How do you parse basic (short/compact) ISO:8601 string with Joda?

I have a time string, which looks like this: 20170822T194135+00. This is called basic ISO:8601 format, if I understood correctly.
When I try to parse it using ZonedDateTime, it throws exception, complaining that it can't parse it.
SO, how do I convert this string to a valid Joda datetime object?
Do I need to build manual "format" to parse it (this would be silly, considering it's a standard format)?
Desperately, I've actually tried to implement custom format:
const time = ZonedDateTime.parse(timeString, DateTimeFormatter.ofPattern(`yyyyMMdd'T'HHmmssZ`));
But, it throws error on column 15. Looks like it fails to parse the timezone. Is my implementation correct? How do I make it work?
I could do it using the pattern x as described in the docs (this pattern accepts offsets like +00).
Then I parsed directly to a ZonedDateTime:
const formatter = DateTimeFormatter.ofPattern("yyyyMMdd'T'HHmmssx");
const time = ZonedDateTime.parse("20170822T194135+00", formatter);
The resulting time variable has the value equivalent to 2017-08-22T19:41:35Z.
The built-in formatters (such as ISO_LOCAL_DATE_TIME) can't parse this format, so the only way seems to be creating a formatter.

MongoDB insert \u0000 after each character in string field?

I am just started mongodb and facing issue when saving XML in string field. it add '\u0000' with each character in xml file. like
"\u0000?\u0000x\u0000m\u0000l\u0000 \u0000v\u0000e\u0000r\u0000s\u0000i\u0000o\u0000n
I need to save this XML as it is without JSON 0r BSON conversion in string field.
Till the time, I found a query to get xml back in correct format.
db.Test.find({"data":"XYZ"}).forEach(function(doc){
var xml = doc.data.replace(/\u0000/g,"");
print(xml);
})

Convert specific symbols to normal utf-8 from json

I get json string from server. Then I parser it using SBJSON library. But when I show parse results in my label I have symbols like that
!
(normally it's !).
So how can I convert my json string to normal string?
Use this: https://github.com/mwaterfall/MWFeedParser/blob/master/Classes/NSString+HTML.m (specifically, the stringByDecodingHTMLEntities method).

Save to pdf from a weird string

From my XML file, I got a weird string (I think it's a blob data).
It looks like this:
0x244033242D212E430D21E2E3[.......]
It's a very very long string. My DB administrator told me that it comes from the database.
How to convert this string to a valid PDF file?
Thank you very much.
Regards,
Kael
A lot depends the database's manner of storing blob data, but if the format's not too exotic then the NSData and NSPropertyListSerialization classes should be able to convert it into something manageable.

iPhone image problem

How can I convert Base64 encode data into hex format.
I get following data in console.
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
And I would like to convert into:
<4c61742c 34343039 3131302e 35302c4c 6f6e2c39 38343237 352e3934 2c482c32 37392e30 302c4b6e 6f74732c 302e3032 2c4e616d 652c504c 41594552 2c496e64 65782c30 2c4d756c 7469706c 61796572 4e756d62 65722c30 00>
format.
Try this SO question about base64 libraries on iOS.