1
我試圖創建一個$或BSON查詢與子程序下面的代碼:
bson * outBson = bson_create();
bson_init(outBson);
bson_append_start_object(outBson, "$query");
bson_append_start_array(outBson, "$or");
bson_append_int(outBson, "cpu", 2000);
bson_append_int(outBson, "ram", 4096);
bson_append_finish_array(outBson);
bson_append_finish_object(outBson);
bson_finish(outBson);
bson_print(outBson);
,但我得到NULL從mongo_find我返回光標()。我試圖轉儲連接mongo-> errstr和mongo-> err代碼,它們都是空的且爲0.
如果我取出bson_append_start/finish_array(),基本上將它更改爲$和query, 。 (不幸的是$,是不是我所試圖做...)
我將不勝感激,如果有人可以告訴我,我應該如何通過C驅動器構建合適的複合查詢BSON。
從蒙戈外殼,我的數據是存在如下:
> db.test.find()
{ "_id" : ObjectId("507d20a72dfd5c5c2534d068"), "cpu" : 1600 }
{ "_id" : ObjectId("507d23602dfd5c5c2534d069"), "cpu" : 2000 }
{ "_id" : ObjectId("507d236c2dfd5c5c2534d06a"), "cpu" : 1666 }
{ "_id" : ObjectId("507d23712dfd5c5c2534d06b"), "cpu" : 2333 }
{ "_id" : ObjectId("507d254eef456cca26234013"), "cpu" : 2000, "ram" : 4096 }
> db.test.find({ $or : [ {"cpu" : 1666}, {"cpu" : 2000} ] })
{ "_id" : ObjectId("507d23602dfd5c5c2534d069"), "cpu" : 2000 }
{ "_id" : ObjectId("507d236c2dfd5c5c2534d06a"), "cpu" : 1666 }
{ "_id" : ObjectId("507d254eef456cca26234013"), "cpu" : 2000, "ram" : 4096 }
感謝。