sql >> データベース >  >> NoSQL >> MongoDB

MongoDB Java:QueryBuilder$in演算子を使用してMongoでオブジェクトを検索しても何も返されません

    これで、次と同等の処理を実行できます:

    db.col.find({$in:[{Id:id1}, {Id:id2}, ..., {Id:idN}]})
    

    $ inするフィールドを指定していないため、これは有効なクエリではありません。私はあなたが望むと思います:

    db.col.find({Id:{$in:[id1, id2, ..., idN]}})
    

    それに応じてクエリ構築コードを変更すれば、問題ないはずです。

    編集:正しいコードを追加する:

    public static void getDocuments(List<Integer> documentIds) {
    
                BasicDBList docIds = new BasicDBList();
                docIds.addAll(documentIds)
                DBObject inClause = new BasicDBObject("$in", docIds);
                DBObject query = new BasicDBObject("Id", inClause);
                DBCursor dbCursor = mongoRule.getDatabase().getCollection("mycollection").find(query);
                System.out.println(dbCursor == null);
                if (dbCursor != null) {
                    while (dbCursor.hasNext()) {
                        System.out.println("object -  " + dbCursor.next());
                    }
                }
            } 
    

    これは、「Id」が「_id」以外のものであることを前提としていることに注意してください




    1. redisのluaで現在の日付と時刻を取得する

    2. pandas.DataFrameをRedisとの間で設定/取得する方法は?

    3. MongoDBとNode.jsの動的クエリ

    4. ソートされたページングの特定のレコードのスキップ値を計算します