基本上,最终目标是为我的所有数据库查询提供默认范围。这意味着将所有查询限制为一组对象ID。我的问题是,如何通过ID查询并确保查询仅限于我的对象ID列表?
我想做这样的事情:
db.posts.findOne({_id: ObjectId("50eb4a874947fb00e3cc0612")})
.where({_id: { $in: [ObjectId("50eb4a874947fb00e3cc0610"),ObjectId("50eb4a874947fb00e3cc0611")] }});
正如您所看到的,查询应该不返回任何结果,因为查询的ID不在$ in对象ID数组中。
顺便说一下,上面的查询只是给我一个错误db.posts.findOne({_id: ObjectId("50eb4a874947fb00e3cc0612")}).where is not a function (shell):1
答案 0 :(得分:1)
这听起来很奇怪,但你可以试试$and
(http://docs.mongodb.org/manual/reference/operators/#_S_and)来结合两个条款:
db.col.find({
$and:[
{_id: ObjectId("50eb4a874947fb00e3cc0612")},
{_id: {
$in: [
ObjectId("50eb4a874947fb00e3cc0610"),
ObjectId("50eb4a874947fb00e3cc0611")
]
}}
]
});
这是我相信的一种做法。