0

基本的に、最終的な目標は、すべての DB クエリに既定のスコープを提供することです。これは、すべてのクエリを一連のオブジェクト ID に制限することを意味します。私の質問は、ID でクエリを実行し、クエリがオブジェクト ID のリストに限定されるようにするにはどうすればよいですか?

私はこのようなことをしたいと思います:

db.posts.findOne({_id: ObjectId("50eb4a874947fb00e3cc0612")})
        .where({_id: { $in: [ObjectId("50eb4a874947fb00e3cc0610"),ObjectId("50eb4a874947fb00e3cc0611")] }});

ご覧のとおり、クエリされた ID がオブジェクト ID の $in 配列にないため、クエリは結果を返さないはずです。

ところで、上記のクエリでは、次のようなエラーが表示されますdb.posts.findOne({_id: ObjectId("50eb4a874947fb00e3cc0612")}).where is not a function (shell):1

4

1 に答える 1

1

これは非常に奇妙に聞こえますが、$and( http://docs.mongodb.org/manual/reference/operators/#_S_and ) を試して、次のように 2 つの句を組み合わせることができます。

db.col.find({
    $and:[
        {_id: ObjectId("50eb4a874947fb00e3cc0612")},
        {_id: {
            $in: [
                ObjectId("50eb4a874947fb00e3cc0610"),
                ObjectId("50eb4a874947fb00e3cc0611")
            ]
         }}
     ]
 });

それが私が信じているこれを行う1つの方法です。

于 2013-01-07T22:56:42.703 に答える