我在 mongodb 聚合中有一个匹配表达式。匹配中包含 3 个字段,但它们并不总是包含数据。我只想在字段不为空时将字段包含在匹配中。
如果所有字段都有数据,则匹配的样子,但例如,如果用于的数组为studentGradeLevels空,那么我不想包含它,或者我希望查询仍然返回数据而忽略空参数。
$match: {
"school._id": "7011",
"studentGradeLevels": { $in: ["09", "10", "11", "12"] },
"contentArea": {
$in: [
"English 1"
]
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法动态构建匹配,以便我只包含我想要的字段(如果它们为空或不为空),或者在查询中执行某些操作,以便忽略空参数。
我尝试将健康检查添加到我的撰写文件中,但每当我运行撰写文件时,我都会收到以下错误.
ERROR: The Compose file './docker-compose.yml' is invalid because:
Unsupported config option for balrogadmin: 'healthcheck'
Unsupported config option for balrogagent: 'healthcheck'
Unsupported config option for balrogpub: 'healthcheck'
Unsupported config option for balrogui: 'healthcheck'
Run Code Online (Sandbox Code Playgroud)
我的docker配置是:
docker --version
Docker version 17.03.0-ce, build 3a232c8
docker-compose --version
docker-compose version 1.11.2, build dfed245
Run Code Online (Sandbox Code Playgroud) GitHub的新GraphQL API需要使用令牌作为以前的版本进行身份验证。那么,我们如何在HttpLink里面添加“ Header”信息Apollo-Client呢?
const client = new ApolloClient({
link: new HttpLink({ uri: 'https://api.github.com/graphql' }),
cache: new InMemoryCache()
});
Run Code Online (Sandbox Code Playgroud) 我无法让youtube-api在Android上正常运行。我正在尝试使最低限度的工作-只需通过公共访问播放视频(不使用oauth)。我有一个来自Google的密钥,并且已在模拟器上安装了youtube应用。我相当有信心,因为我是从youtube api示例代码创建了一个新项目,并且效果很好,因此这是正确的。
从我的项目运行时,虽然我得到:
E/YouTubeAndroidPlayerAPI: Error creating YouTubePlayerView
com.google.android.youtube.player.internal.w$a: Exception thrown by invoked constructor in com.google.android.youtube.api.jar.client.RemoteEmbeddedPlayer
...
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance0(Native Method)
...
Caused by: java.lang.IllegalArgumentException: The concrete class implementing IObjectWrapper must have exactly *one* declared private field for the wrapped object. Preferably, this is an instance of the ObjectWrapper<T> class.
at zst.a(SourceFile:76)
Run Code Online (Sandbox Code Playgroud)
我的布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:textAppearance="@android:style/TextAppearance.Small"
android:gravity="center"
android:text="Youtube!"/>
<fragment
android:name="com.google.android.youtube.player.YouTubePlayerFragment"
android:id="@+id/youtube_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我的活动:
public class EducationVideoActivity extends YouTubeFailureRecoveryActivity {
@Override …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 graphql 从 Github 获取问题的 id 列表,但看起来我遗漏了一些东西或者这是不可能的。
query ($ids:['517','510']!) {
repository(owner:"owner", name:"repo") {
issues(last:20, states:CLOSED) {
edges {
node {
title
url
body
author{
login
}
labels(first:5) {
edges {
node {
name
}
}
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
上述查询给我的答复如下,
{
"errors": [
{
"message": "Parse error on \"'\" (error) at [1, 14]",
"locations": [
{
"line": 1,
"column": 14
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
请帮助我确定是否可能或我在这里做错了什么。
不确定如何查询具有以下结构的 mongo db 对象的匹配的 directory_object_ids 。
"_id" : ObjectId("5702e52e51c2e40f55b3fd43"),
"_revision" : 4,
"enabled" : true,
"selector" : {
"directory_object_ids" : [
ObjectId("56c4bfb793e0be0eb6297369"),
ObjectId("56c4bfc293e0be0eb6297391"),
ObjectId("56cdfc65f2325d0e6346b7fe")
]
}
Run Code Online (Sandbox Code Playgroud)
我试过了
db.policies.find({"selector":{"directory_object_ids":{$elemMatch: {$eq:ObjectId("56cdfc65f2325d0e6346b7fe")}}}}).pretty()
Run Code Online (Sandbox Code Playgroud)
和
db.policies.find({"selector":{"directory_object_ids": {$eq:ObjectId("56cdfc65f2325d0e6346b7fe")}}}).pretty()
Run Code Online (Sandbox Code Playgroud)
没有运气。
先感谢您。
github-api ×2
mongodb ×2
android ×1
apollo ×1
arrays ×1
docker ×1
find ×1
github ×1
graphql ×1
java ×1
javascript ×1
nested ×1
reactjs ×1
youtube-api ×1