MongoDBではなく、動作していないclateで更新サブクエリスタイルを実行しようとしています。 toArray
は、のままではなく、ObjectIds
をテキストにキャストするため、私はそれを信じています。以下は私のコードです:
var items = db.listsProducts.find({_id: {$exists: true}}, {product: true, _id: false}).toArray();
db.products.update({_id: {$nin: items}}, {$set: {'status':'inactive'}},{multi:true});
'product'はlistProductsコレクションのDBRefフィールドです。 'products'は私が更新しようとしているコレクションです。
'items'にないフィールドを更新する代わりに、すべてのドキュメントを更新します。
私は間違っていますか?ありがとう。
listsProducts:
{
"_id":ObjectIdが( "54e4bf7bade0276f008b4567")、
"__type": "コア\ Libsの\リスト\エンティティ\製品"、
"タイプ": "inventoryItem"、
"製品":DBRef( "製品"、のObjectId( "54e308e23b8e778d128b4799"))、
"リスト":DBRef( "リスト"、のObjectId( "54e4aeab5252416c008b4569"))、
"inventoryData": {
"__type": "コア\ Libsの\リスト\エンティティ\製品\ InventoryData"、
"parLevel":NumberLong(0)、
"itemsOnHand":NumberLong(0)
}、
"timeLog": {
"__type": "コア\ Utilsの\エンティティ\ TimeLog"
"createdAt":ISODate( "2015-02-18T16:36:11.387 + 0000")、
"updatedAt":ISODate(「2015年-07-07T07:31:25。900 + 0000 ")、
"deletedAt":NULL
}
}
製品:
{
"_id":のObjectId(" 54e308d83b8e778d128b4588 ")、
"
"名前": "ニンジンスライス"
"gtin": "10071179184300"、"__type": "Core \ Libs \ Product \ Entity \ Product" "ステータス": "アクティブ"、
"defaultPrice":NumberLong(0)、
"参照":{
"__type": "コア\ Libsの\製品\エンティティ\製品\参照"、
"メーカー":DBRef( "メーカー" のObjectId( "54e308d73b8e778d128b4569"))、
"カテゴリ":DBRef( "1WS-カテゴリ" のObjectId( "53e1e8723b8e77a52b8b45fd"))
}、
"情報":{
"__type": "Core \ Libs \ Product \ Entity \ Product \ Information"、
"description":{
"__type": "コア\ Libsの\製品\エンティティ\製品\説明"、
"短い": "キャロットスムーズSLI 1月20日#"、
"長い":「SIMPLOTクラシック - キャロットスムーズSLI 1/20# "
}、
は、 "属性":{
"__type": "Xeeo \ Servicesの\コア\抄録\コレクション"、
"実体":[
{
"__type":" Core \ Utils \ Entities \ KeyValuePair "、
" key ":"ブランド名 "、
"値": "SIMPLOTクラシック"
}、
{
"__type": "コア\ Utilsの\エンティティ\ KeyValuePair"
"キー": "メーカーGLN"、
"値": " 0071179000009"
}、
{
"__type": "コア\ Utilsの\エンティティ\ KeyValuePair"
"キー": "メーカー名"、
"値":「J. R.SIMPLOT会社」
}、
{
"__type": "コア\ Utilsの\エンティティ\ KeyValuePair"、
"キー": "原産国"、
"値": "US"
} 、
{
"__type": "コア\ Utilsの\エンティティ\ KeyValuePair"、
"キー": "最終更新日"、
"値": "2014-12-03T09:42:04"
}、
{
"__type": "コア\ Utilsの\エンティティ\ KeyValuePair"
"キー": "発行日"、
"値": "2011-10-26T00:00:00"
}
{
"__type": "コア\ Utilsの\エンティティ\ KeyValuePair"、
"キー": "可能日を開始します"、
"値": "2014-12-03T00:00:00"
}、
{
"__type": "Core \ Utils \ Entiti ES \ KeyValuePair "
"キー": "奥行き(IN)"、
"値": "13.375"
}
]
}
}、
"画像":" http://www.fsenetportal.com/FSENetimages.nsf/0/BB29958620D9515A87257AA6005068B1/ $ファイル/10071179184300_A1CD.jpg?OpenElement "
"elasticSearchIndexStatus": "インデックス付け"、
"timeLog":{
"__type": "コア\ Utilsの\エンティティ\ TimeLog"
"createdAt":ISODate(" 2015-02-17T09:24:40.138 + 0000」)、
"updatedAt":ISODate( "2016-03-25T00:56:21.219 + 0000")、
"deletedAt":NULL
}
}
"product"はDBRefなので、返すmap関数が必要なのはi.product._idです。しかし、i.productを返すようにマップ関数を更新すると、WriteResult({ \t "nMatched":0、 \t "nUpserted":0、 \t "nModified":0、 \t "writeError":{ \t \t "コード":2、 _id Iは、次を得ます\t \t "errmsg": "ArrayFilterEntries equalityを未定義にすることはできません" \t} } – manioc
'items'と' products'コレクションの両方からドキュメントの例を投稿できますか? – lascort
ok私はlistsProductsと製品ドキュメントの例を掲載 – manioc