Thanks for the prompt reply.
From the console, my document is structured like this:
> db.principals.findOne()
{
"_id" : ObjectId("4d6fe8954542d242195344b2"),
"className" : "com.wenzani.document.principal.PrincipalsDocument",
"ctx_id" : "4d6fe8954542d242175344b2",
"dmn_id" : "4d6fe8954542d242165344b2",
"prncpal_ids" : [
"4d6fe8954542d242185344b2",
"4d6fe8954542d2421a5344b2",
"4d6fe8954542d2421b5344b2",
"4d6fe8954542d2421c5344b2",
"4d6fe8954542d2421d5344b2",
"4d6fe8954542d2421e5344b2",
"4d6fe8954542d2421f5344b2",
"4d6fe8954542d242205344b2",
"4d6fe8954542d242215344b2",
"4d6fe8954542d242225344b2"
],
"usr_id" : "4d6fe8954542d242155344b2"
}
I am using Morphia for the insertion (nice one Scott ;)) but the Java
Driver directly for the query, which looks like this:
BasicDBObject slice = new BasicDBObject("$slice", 1);
BasicDBObject principalsQuery = new BasicDBObject("prncpal_ids",
slice);
DBObject found = collection.findOne(principalsQuery);
System.out.println(found);
And I get this exception:
com.mongodb.MongoException: invalid operator: $slice
at com.mongodb.MongoException.parse(MongoException.java:53)
at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:273)
at com.mongodb.DBCollection.findOne(DBCollection.java:480)
at com.mongodb.DBCollection.findOne(DBCollection.java:469)
at
com.wenzani.document.principal.PrincipalServiceImplTest.testSlice(PrincipalServiceImplTest.java:
210)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)
at
org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:
98)
at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:
79)
at
org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:
87)
at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:
77)
at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
at
org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:
88)
at
org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:
51)
at org.junit.internal.runners.JUnit4ClassRunner
$1.run(JUnit4ClassRunner.java:44)
at
org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:
27)
at
org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:
37)
at
org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:
42)
at org.junit.runner.JUnitCore.run(JUnitCore.java:130)
at
com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:
65)
Stu