Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb:返回仅存在一个特定数组值的情况_Mongodb - Fatal编程技术网

Mongodb:返回仅存在一个特定数组值的情况

Mongodb:返回仅存在一个特定数组值的情况,mongodb,Mongodb,我收集了以下内容:- (1) myCollection.tags = ['tag1', 'tag2', 'tag3', 'tag4', 'tag5'] (2) myCollection.tags = ['tag1', 'tag3', 'tag4'] (3) myCollection.tags = ['tag1'] (4) myCollection.tags = ['tag2', 'tag4', 'tag5'] 我如何获得只满足条件='tag1',即只满足案例(3)的结果集?您可以尝试db.co

我收集了以下内容:-

(1) myCollection.tags = ['tag1', 'tag2', 'tag3', 'tag4', 'tag5']
(2) myCollection.tags = ['tag1', 'tag3', 'tag4']
(3) myCollection.tags = ['tag1']
(4) myCollection.tags = ['tag2', 'tag4', 'tag5']

我如何获得只满足条件='tag1',即只满足案例(3)的结果集?

您可以尝试
db.collectionname.find({'tags':['tag1']})
var tags=['tag1'];db.collection.find({“tags”:{“$all”:tags,$size”:tags.length})
以一种灵活的JavaScript变量的方式,在同一个键上使用隐式和语法。这将在可变数组长度上与任意顺序的元素匹配。所以
var标签=['tag5'、'tag2'、'tag4'];db.collection.find({“tags”):{“$all”:tags,“$size”:tags.length}})
匹配此处的(4)条件,即使数组由于顺序不同而不是“完全匹配”,但实际包含的元素是。你应该优先使用和而不是“精确匹配”,除非你明确表示,在这种情况下,“顺序”也很重要。谢谢大家,这真的很简单,因为我不知道我可以在这里使用数组括号。。。额外感谢@NeilLunn提供的额外信息-在查询多个标记(我也需要)时知道这一点非常好。您可以尝试
db.collectionname.find({'tags':['tag1']})
var tags=['tag1'];db.collection.find({“tags”:{“$all”:tags,$size”:tags.length})
以一种灵活的JavaScript变量的方式,在同一个键上使用隐式和语法。这将在可变数组长度上与任意顺序的元素匹配。所以
var标签=['tag5'、'tag2'、'tag4'];db.collection.find({“tags”):{“$all”:tags,“$size”:tags.length}})
匹配此处的(4)条件,即使数组由于顺序不同而不是“完全匹配”,但实际包含的元素是。你应该优先使用和而不是“精确匹配”,除非你明确表示,在这种情况下,“顺序”也很重要。谢谢大家,这真的很简单,因为我不知道我可以在这里使用数组括号。。。额外感谢@NeilLunn提供的额外信息——当查询多个标签时,很高兴知道这一点(我也需要)。