Pi *_*rse 0 mongodb morphia mongodb-query
我有一个mongo集合,其文档如下所示:
{
"_id" : ObjectId("9873214jkhdkfjdsf8324"),
"nm" : "test",
"sts" : 1,
"updby" : NumberLong(0),
"tags" : [
{
"name" : "women",
"rank" : 1,
"type" : 3
},
{
"name" : "men",
"rank" : 1
},
{
"name" : "clothing",
"rank" : 2,
"type" : 1
}
]
Run Code Online (Sandbox Code Playgroud)
}
我想查询集合,以便我想要所有具有"名称"的文档:"women"和"type":3在返回的每个文档的tags子文档中.
我知道mongo查询应该是这样的:
db.collection.find("tags":{
$all:[
{"$elemMatch":{"name":"women","type":3}},
]})
Run Code Online (Sandbox Code Playgroud)
我尝试使用morphia提供的'hasthiselement',但我无法形成我想要的确切查询.
getMongoDAORead().getDatastore().createQuery(test.class)
.field("tags").hasThisElement("name").equal("women");
Run Code Online (Sandbox Code Playgroud)
此查询似乎不正确.有人可以帮我形成正确的查询吗?
我通过执行以下操作来解决此问题:
我创建了一个Tags类的对象并对其进行了初始化:
Tags tag = new Tags("women", null, 3);
Query<MyClass> t = getMongoDAORead().getDatastore()
.createQuery(MyClass.class)
.field("ctags").hasThisElement(tag);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1081 次 |
| 最近记录: |