首页 > 解决方案 > MongoDB - 对数组的“包含”查询的奇怪行为差异

问题描述

我有一个名为 test 的集合,其中存储了以下文档:

{
"_id" : ObjectId("5c128451f6e8eb70b846018f"),
"NumericValues" : [ 
    112233, 
    112244
],
"StringValues" : [ 
    "112233", 
    "112244"
]}

当我对 StringValues 执行查询过滤时,我得到了匹配的记录。

此返回 1 条记录:

db.getCollection('test').find({"StringValues":"112233"})

但是,以下查询均不返回任何记录...

db.getCollection('test').find({"NumericValues":112233})
db.getCollection('test').find({"NumericValues": { $eq: 112233}})

这怎么可能?为什么过滤字符串数组有效,而不是数值数组?(我在 Azure Cosmos 中运行 MongoDB 3.2.0)

标签: mongodbmongodb-query

解决方案


推荐阅读