gpt4 book ai didi

c - 不按字母顺序更新 MongoDB 中的文档

转载 作者:行者123 更新时间:2023-11-30 17:41:49 25 4
gpt4 key购买 nike

我正在 MongoDB 上制作一个项目并插入一些文档,现在我正在通过此代码更新文档..

bson_init( query );

bson_append_string(query, "First", "A");
bson_append_string(query, "Second", "B");
bson_append_string(query, "Third", "C");
bson_append_string(query, "Fourth", "D");
bson_append_string(query, "Fifth", "E");

bson_finish(query );


bson_init( b );
bson_append_start_object(b,"$set");

if(checkBox_First->isChecked() == true)
bson_append_string( b, "First", "Z");

if(checkBox_Second->isChecked() == true)
bson_append_string( b, "Second", "X");

if(checkBox_Third->isChecked() == true)
bson_append_string( b, "Third", "R");

if(checkBox_Fourth->isChecked() == true)
bson_append_string( b, "Fourth", "Y");

if(checkBox_Fifth->isChecked() == true)
bson_append_string( b, "Fifth","P");

bson_append_finish_object( b );

bson_finish(b );

mongo_update(conn,TEST_NS,query,b,MONGO_UPDATE_BASIC,0);
bson_destroy(query);
bson_destroy(b);

代码工作正常,但更新后,文档按字母顺序存储。谁能告诉我如何在不按字母顺序排序的情况下更新文档。我正在使用 "$set" 更新参数。我正在使用 C 驱动程序。

最佳答案

确保顶级字段的顺序如您所愿的唯一方法是立即设置整个文档。如果文档中已有某些字段,$set 运算符无法指定要在文档中添加新字段的位置。

从下一个版本(2.6,目前作为不稳定开发版本 2.5.x 提供)开始,此行为将发生变化,并且文档中的字段将不会重新排序。根据您部署应用程序的时间,您可以尝试开发版本,一旦 2.6 发布,就使用该版本进行部署。

请注意,通常顶级字段顺序并不重要,并且通常无法保证。

关于c - 不按字母顺序更新 MongoDB 中的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20988872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com