mongo c-driver bcon $ne 值不相等
mongo c-driver bcon $ne value no equal
我正在尝试向我的 BCON 查询附加一个要求,其中 'tribe_type' 不等于 'initial-public'。
我的原始代码是并且有效:
query = BCON_NEW ("_id", BCON_OID(&oid));
当我添加第二部分时,它编译,但是 mongo 匹配失败。
query = BCON_NEW ("_id", BCON_OID(&oid),
"{",
"tribe_type",
"$ne",
"initial-public",
"}"
);
query = BCON_NEW ("_id", BCON_OID(&oid),
"tribe_type",
"{",
"$ne", BCON_UTF8 ("initial-public"),
"}");
您必须为 UTF-8 字符串指定 BCON 类型。
小心隐含的 $and's
小心嵌套文档和 BCON。
query = BCON_NEW ("_id", BCON_OID(&oid),
"{",
"tribe_type",
"$ne",
"initial-public",
"}"
);
编译成这个命令
{ "_id" : <an oid> }, { "tribe_type" : "$ne" }
这显然不是你想要的。
明确 $and 操作,将字符串正确键入为 UTF8 字段,并确保像这样捕获嵌套文档:
query = BCON_NEW (
"$and", "[", "{", "_id", BCON_OID(&oid), "}",
"{", "tribe_type", "{", "$ne", BCON_UTF8 ("initial-public"), "}", "}","]"
);
生成如下所示的查询
{ "$and" : [ { "_id" : <an oid> }, { "tribe_type" : { "$ne" : "initial-public" } } ] }
这可能就是您想要的。
我正在尝试向我的 BCON 查询附加一个要求,其中 'tribe_type' 不等于 'initial-public'。
我的原始代码是并且有效:
query = BCON_NEW ("_id", BCON_OID(&oid));
当我添加第二部分时,它编译,但是 mongo 匹配失败。
query = BCON_NEW ("_id", BCON_OID(&oid),
"{",
"tribe_type",
"$ne",
"initial-public",
"}"
);
query = BCON_NEW ("_id", BCON_OID(&oid),
"tribe_type",
"{",
"$ne", BCON_UTF8 ("initial-public"),
"}");
您必须为 UTF-8 字符串指定 BCON 类型。
小心隐含的 $and's
小心嵌套文档和 BCON。
query = BCON_NEW ("_id", BCON_OID(&oid),
"{",
"tribe_type",
"$ne",
"initial-public",
"}"
);
编译成这个命令
{ "_id" : <an oid> }, { "tribe_type" : "$ne" }
这显然不是你想要的。
明确 $and 操作,将字符串正确键入为 UTF8 字段,并确保像这样捕获嵌套文档:
query = BCON_NEW (
"$and", "[", "{", "_id", BCON_OID(&oid), "}",
"{", "tribe_type", "{", "$ne", BCON_UTF8 ("initial-public"), "}", "}","]"
);
生成如下所示的查询
{ "$and" : [ { "_id" : <an oid> }, { "tribe_type" : { "$ne" : "initial-public" } } ] }
这可能就是您想要的。