C/C++中两个BSONT的比较

C/C++中两个BSONT的比较,c++,c,sorting,bson,C++,C,Sorting,Bson,我需要比较两种情况。我发现两个bson可能具有不同的键值对序列。例如{key1:val1,key2:val2}和{key2:val2,key1:val1}。但它们在我的项目中是相同的。在这种情况下,bson_compare和bson_equal将返回false。如何在C/C++中解决这个问题 顺便问一下,如何在C或C+++中键入这些键值对? 谢谢bson_compare和bson_equal检查两个内容缓冲区是否相等,不仅仅是两个缓冲区或内存位置的值。它在内部使用memcmp来比较两个对象。因此

我需要比较两种情况。我发现两个bson可能具有不同的键值对序列。例如{key1:val1,key2:val2}和{key2:val2,key1:val1}。但它们在我的项目中是相同的。在这种情况下,bson_compare和bson_equal将返回false。如何在C/C++中解决这个问题

顺便问一下,如何在C或C+++中键入这些键值对? 谢谢

bson_compare和bson_equal检查两个内容缓冲区是否相等,不仅仅是两个缓冲区或内存位置的值。它在内部使用memcmp来比较两个对象。因此,x==y并不意味着memcmpx,y==0。

两种方法: 1用Python很容易做到这一点。编写一个python函数。并调用C++程序中的Python函数。 2使用bson_iter_t迭代bson_t中的每个键值对,并递归进行比较


第二种方法似乎更复杂。但我决定用它。现在,我已经完成了部分方法

C!=C++。一般来说,你应该选择一个。我选择C。事实上,我在我的C++项目中使用了LibsSin LIB和MunGoDB C驱动程序。您有什么想法吗?在文档中,它说bson_比较函数应该比较两个bson文档是否相等。这可以与qsort结合使用。但是我没有在谷歌上找到qsort。qsort是否对bson\t中的键值对进行排序???