给出一个集合:
{id: 1, name:"abc"},
{id: 2, name:null}
测试我使用的属性:
db.collecton.find({name:"abc"}, {name:1}); // which returns the first document.
我还要为这两个外部值添加测试:
value1 = 100;
value2 = 100; // value2 might be different than value1
db.collecton.find({name:"abc", $eq:[ value1, value2 ]}, {name:1});
这导致找不到任何结果。我不想添加value1或value2作为属性,我只是想确保它们除了其他标准之外还相互匹配。另外,我意识到如果两个外部值匹配,我只能运行查询,但是如何将这些外部变量添加到条件中呢?
答案 0 :(得分:2)
db.collection.find({ name : 'abc', name : { $type : 1 + (value1 === value2) }})