|
When trying to do
#include <mongoc.h>
|
#include <stdio.h>
|
#include <stdlib.h>
|
|
int
|
main (int argc,
|
char *argv[])
|
{
|
bson_error_t error;
|
const bson_t *out;
|
bson_t *query;
|
mongoc_client_t *client;
|
mongoc_collection_t *collection;
|
mongoc_cursor_t *cursor;
|
|
mongoc_init ();
|
|
client = mongoc_client_new ("mongodb://127.0.0.1:27017/");
|
collection = mongoc_client_get_collection (client, "test", "restaurants");
|
query = BCON_NEW("$or", "[", "{", "cuisine", "Italian", "}",
|
"{", "address.zipcode", "10036", "}", "]");
|
cursor = mongoc_collection_find(collection, MONGOC_QUERY_NONE, 0, 1, 0, query, NULL, NULL);
|
|
if (mongoc_cursor_next(cursor, &out)) {
|
printf("document found\n");
|
} else if (mongoc_cursor_error(cursor, &error)) {
|
printf ("error: %s\n", error.message);
|
} else {
|
printf("no documents found\n");
|
}
|
|
bson_destroy (query);
|
mongoc_cursor_destroy (cursor);
|
mongoc_collection_destroy (collection);
|
mongoc_client_destroy (client);
|
|
mongoc_cleanup ();
|
|
return EXIT_SUCCESS;
|
}
|
the new mongoc_collection_find sends the command
{ find: "restaurants", or: [ { cuisine: "Italian" }, { address.zipcode: "10036" } ] }
|
which can’t be parsed by the server and results in an error.
error: Failed to parse: { find: "restaurants", or: [ { cuisine: "Italian" }, { address.zipcode: "10036" } ], limit: 1 }. Unrecognized field 'or'.
|
|