我使用Mongo API将以下文档存储在我的Cosmos DB中:
{
"_id" : ObjectId("59157eaabfeb1900011592c8"),
"imageResourceId" : "1489496086018.png",
"gallery" : "Tst",
"thumbnailRaw" : {
"$binary" : "<SNIP>",
"$type" : "00"
},
"tags" : [
"Weapon/Sword",
"Japanese"
],
"__v" : 1
}
我正在尝试执行排除包含“日语”标记的任何对象的查询。我精心设计了以下查询,该查询在真正的Mongo DB上正确执行(即,它不会返回上述文档):
{"gallery":"Tst, "tags":{"$nin":["Japanese"]}}
在Cosmos DB上,此查询返回上面的图像,尽管$ nin数组中存在字符串。我正确地做了这个查询吗?是否有另一种支持的方式让Cosmos DB进行NOT IN逻辑运算?
答案 0 :(得分:0)
我对CosmosDB有一个不同的问题,这让我对使用数组的操作进行了一些测试,我相信在你的情况下这应该可行:
db.gallery.find({"tags":{"$elemMatch":{$nin: ["japanase"]}}} )
我的问题:
Azure Cosmos DB check if array in field is contained in search array
我同意CosmosDB只实现mongoDB的一个子集的评论,文档非常缺乏,但我希望我提出的修复方法适合你。