我想查询所有包含特定值的字段的对象。例如,我有两个文档:
{"123": "apple", "217": "pear", "179": "orange"}
{"831": "pear", "189": "grapes"}
我希望能获取所有包含值为“apple”的字段的对象,但是我不知道字段的名称。在MongoDB中是否可以指定查询来实现这一点?(对象中的数字键是子ID,对象中的值是长GUID)
我想查询所有包含特定值的字段的对象。例如,我有两个文档:
{"123": "apple", "217": "pear", "179": "orange"}
{"831": "pear", "189": "grapes"}
我希望能获取所有包含值为“apple”的字段的对象,但是我不知道字段的名称。在MongoDB中是否可以指定查询来实现这一点?(对象中的数字键是子ID,对象中的值是长GUID)
{"123": "apple", "217": "pear", "179": "orange"}
{"831": "pear", "189": "grapes"}
你可以将其结构化为以下形式:
{ tags: [
{ cid: "123", value: "apple" },
{ cid: "217", value: "pear" },
{ cid: "179", value: "orange" },
]
}
{ tags: [
{ cid: "831", value: "pear" },
{ cid: "189", value: "grapes" },
]
}
完成此操作后,您可以执行以下查询以查找所有所需文档:
db.docs.find( {'tags.value': "apple" } )
use dbname
db.collectionname.ensureIndex(
{ "$**": "text" },
{ name: "TextIndex" }
)
DB db = mongoClient.getDB("dbname");
DBCollection coll = db.getCollection("collectionname");
BasicDBObject query = new BasicDBObject();
query.append("$text", new BasicDBObject("$search", searchstring));
DBCursor cursor = coll.find(query);